我正在填写这个清单:
<ul id="FolderList"></ul>
使用 jquery 生成文件夹列表,生成以下 HTML:
<ul id="FolderList">
<li id="FolderList0" onclick="return myFunc(0)">Item 1</li>
<li id="FolderList1" onclick="return myFunc(1)">Item 2</li>
<li id="FolderList2" onclick="return myFunc(2)">Item 3
<ul>
<li id="FolderList2a" onclick="return myFunc(2a)">Sub Item 1</li>
<li id="FolderList2b" onclick="return myFunc(2b)">Sub Item 2
<ul>
<li id="FolderList2bi" onclick="return myFunc(2bi)">Subsub Item 1</li>
</ul>
</li>
</ul>
</li>
</ul>
...
function myFunc(id) {
//do something
返回假;
};
由于某种原因,如果我单击 1 级 li 项目,函数 myFunc() 将按预期执行。如果我单击“2 级”项目(即:FolderList2a),则 myFunc 将被调用两次。如果我单击第三级(即:FolderList2bi),它会被调用 3 次 - 依此类推。
有人知道这是怎么回事吗?
提前致谢!
The click events are bubbling http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-flow-bubbling up the Dom
If you want to prevent bubbling let myFunc
return false
要停止冒泡,您需要访问事件对象,event.stopPropagation
or event.cancelBubble
取决于浏览器。
http://jsfiddle.net/Jetyc/3/ http://jsfiddle.net/Jetyc/3/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)