<script type="text/javascript" src="/js/jquery1.8.3.js"></script>
<script>
$(document).ready(function(){
$("li").has("ul").bind("click",function(e){
console.log($(this).text());
});
});
</script>
<ul>
<li>Fruit
<ul>
<li>Apple</li>
<li>Banana</li>
</ul>
</li>
</ul>
我如何仅在单击“水果”而不是“苹果”,“香蕉”时绑定点击事件
我希望单击Apple或Banana时不会发生单击事件
请帮我..
如已说明的,一种方法是使用event.stopPropagation()
。我不喜欢这种方法,因为它阻止页面上的任何其他事件处理程序注册该事件。
最好检查事件是否起源于另一个li
元素。这样的事情会做:
$("li").has("ul").bind("click",function(e){
if ($(e.target).closest('li').get(0) !== this) {
return;
}
console.log($(this).text());
});
让我们在这里分解关键点:
e.target
,事件起源的元素li
或获取其最接近的li
祖先(closest
执行此操作)li
作为本机DOM元素获取li
与绑定事件处理程序的那个进行比较如果li
元素不同,则事件起源于nested li
。如果它们相同,则不是。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句