2010-06-18 81 views
2

我有一個大的div裏面的一些環節,我想裏面有大格可點擊和鏈接太多,我這樣做:jQuery的:優先選擇內點擊

html : 

<div class="clickable"> 
    some text... 
    <a href="myurl1">Link 1</a> 
    <a href="myurl2">Link 2</a> 
    some text... 
</div> 

jquery : 

$('.clickable').click(function() { 
    alert('Hello'); 
}); 

如果我點擊在可點擊div內的鏈接,我首先獲得了「Hello」警報,然後加載了新頁面:是否可以在不觸發外部div單擊處理程序的情況下讓錨點工作?

回答

4

添加以下代碼:

$('a').click(function(event) { 
    event.stopPropagation(); 
}); 

你可以看到它在這裏工作:http://jsfiddle.net/wPymp/

這個代碼在一個簡單的方法:.event.stopPropagation()確保事件不會在DOM和觸發器處理程序向上傳播在祖先元素上。

+0

太容易了!! 非常感謝您的測試網站鏈接 – Eric 2010-06-18 18:03:12

+0

jsFiddle應該從頭版鏈接,當然還有競爭對手名單(我不以任何方式與jsFiddle有關)。 – MvanGeest 2010-06-18 18:06:15