我想有一個容器上的點擊事件,但不當我點擊容器內的元素:的jQuery/js的事件
$('.container').click(function(event) {
history.back(1);
});
但history.back()不應該叫,當我在
<div class="container"><a href="URL">Link</a></div>
點擊是否有可能排除從容器事件的聯繫?
我想有一個容器上的點擊事件,但不當我點擊容器內的元素:的jQuery/js的事件
$('.container').click(function(event) {
history.back(1);
});
但history.back()不應該叫,當我在
<div class="container"><a href="URL">Link</a></div>
點擊是否有可能排除從容器事件的聯繫?
你可以這樣做:
$('.container').click(function(event) {
if(event.target.nodeName.toLowerCase() == 'div') {
// code
}
});
使用event.stopPropagation();
在單擊事件處理程序:
event.stopPropagation();
爲什麼你兼得? – Ian
@Ian:實際上不需要返回false。 'stopPropagation'會處理它 –
試試這個:
$('.container').click(function(event) {
if(event.target === event.currentTarget) history.back(1);
//(event.target === this) => Equivalent.
});
我不知道爲什麼,但代碼工作得很好,謝謝! – Arerrac
匿名downvoter護理評論?我的答案有問題嗎? – j08691