2013-06-12 70 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