我是这个网站的新成员...已经使用了很长时间但从来没有成员,但我找不到答案,所以我想我应该问。
我是 jquery 和html选择器的新手,所以如果这是一个简单的问题,请原谅我,但是..
我使用 HTML5 , css 和 jquery 。我创建了一个三级深度的水平下拉菜单。我想根据用户的选择选择要加载到iframe的html页面(每个页面代表一个报告)。当我选择内部il选择时,我得到它的id,但是它继续循环遍历li
和ul
,直到它在父li
处结束。
==>这是UL> IL> IL树:
<li id="" onclick="processRequest(id)">
<a href="#">link 4</a>
<ul class="sub1">
<li id="sublink41" onclick="processRequest('sublink41.html')"> <a href="#">-link 4.1</a></li>
<li id="sublink42" onclick="processRequest(id)"> <a href="#">-link 4.2</a></li>
<li id="sublink43">
<a href="#">-link 4.3</a><span class="rarrow">▶</span>
<ul class="sub2">
<li id="sublink431" onclick="processRequest(id)"><a href="#">-- link 4.3.1</a></li>
<li id="sublink432" onclick="processRequest(id)"> <a href="#">-- link 4.3.2</a></li>
==&GT;这是jQuery函数:
function processRequest(value) {
var selectedValue = value;
console.log('selected values is: '+selectedValue);
$('#frameIt').replaceWith('<iframe id="frameIt" src= "' + selectedValue + '">')
}
我想使用ID来识别要加载到iframe中的正确html文件,但这是我通过chrome工具检查时看到的内容......
default.aspx:71 selected values is: sublink41.html
default.aspx:71 selected values is:
正如您所看到的,它找到了正确的值,但随后它继续到父LI并在那里结束...... 我已经花了一些时间试图找到解决方案,但未能......任何帮助都表示赞赏。
答案 0 :(得分:0)
尝试将onclick
移至<a>
代码,而不是<li>
代码。正如您的代码现在一样,点击冒泡DOM并可能多次触发processRequest()
,无意中将id
替换为您实际想要的值以外的其他值。
这里的答案也可能对您有用:https://stackoverflow.com/a/1369080/4475757
答案 1 :(得分:0)
删除
的onclick =&#34;的processRequest(ID)&#34;
来自第一行的父级li标签。