2014-03-05 39 views
1

我想有一個容器上的點擊事件,但當我點擊容器內的元素:的jQuery/js的事件

$('.container').click(function(event) { 
    history.back(1); 
}); 

但history.back()不應該叫,當我在

<div class="container"><a href="URL">Link</a></div> 

點擊是否有可能排除從容器事件的聯繫?

回答

3

你可以這樣做:

$('.container').click(function(event) { 
    if(event.target.nodeName.toLowerCase() == 'div') { 
    // code 
    } 
}); 
+0

我不知道爲什麼,但代碼工作得很好,謝謝! – Arerrac

+0

匿名downvoter護理評論?我的答案有問題嗎? – j08691

3

使用event.stopPropagation();在單擊事件處理程序:

event.stopPropagation(); 
+1

爲什麼你兼得? – Ian

+1

@Ian:實際上不需要返回false。 'stopPropagation'會處理它 –

2

試試這個:

$('.container').click(function(event) { 
    if(event.target === event.currentTarget) history.back(1); 
    //(event.target === this) => Equivalent. 
});