2013-06-12 72 views
0

我有以下HMTL代码:多个点击事件

<li> 
    <img .../> 
    <img .../> 
    <img .../> 
</li> 

我要为每一个元素(一个列表项目,以及其他三个为图像)注册不同的功能。我在所有的注册点击事件,但当我点击图像时,li函数触发。

li.addEventListener("click",open,false); 
img1.addEventListener("click",edit,false); 
img2.addEventListener("click",delete,false); 
img3.addEventListener("click",add,false); 

我googled当你设置为真的最后一个参数,但仍然没有运气会发生什么。

感谢您的帮助。

+0

RTFM:https://developer.mozilla.org/en-US/docs/Web/API/EventTarget.addEventListener 此外,'delete'是一个javascript关键字,不应该被使用。 – forivall

+0

我知道@forivall,我只是在这里输入4个随机函数来演示。我不想粘贴我所有人都可以理解的代码。无论如何感谢提示。 – joaopbmagalhaes

回答

3

当你定义功能,从传播像这样停止事件:

function open(e) { 
    e.stopPropagation(); 
} 

function edit(e) { 
    e.stopPropagation() 
} 

等等...

0

扩大对designcise的答案......你需要使用e.stopPropagation()到冒泡

$('li img').on('click',function(e){ 
    e.stopPropagation(); 
    alert('img clicked'); 
}); 

这里的jsfiddle http://jsfiddle.net/hbGRS/

停止事件
+0

他没有使用jQuery。 – designcise

+0

@designcise我知道这些示例不使用jQuery,但问题*是*标记为jQuery。我不是想捍卫这个答案,我只是说 – Ian

+1

总是很好的展示其他方式来做到这一点。很多人通过搜索引擎来到这里:) – designcise