2012-01-02 69 views
2

我有一個綁定了點擊事件的div。我想在這個div內添加一個錨標籤,不會觸發div點擊的動作。我已經嘗試將'onclick="return false;"'放在錨點上,但它仍然會觸發div上的點擊。這有什麼竅門嗎?如何處理綁定到div的點擊事件而不觸發div單擊事件的div中的錨點

+0

你是如何將點擊處理程序綁定到div元素的? – 2012-01-03 00:00:33

+0

我正在使用jQuery .click方法 – coder 2012-01-03 00:03:20

+0

可能的重複[如何停止事件傳播與內聯onclick屬性?](http://stackoverflow.com/questions/387736/how-to-stop-event-propagation-with -inline-的onclick屬性) – Purag 2012-01-03 00:09:35

回答

2

假設你使用jQuery的click(),你可以這樣做:

$('div').click(
    function(e){ 
     if (e.target.tagName == 'A') { 
      return false; // do nothing if the click is on the a element 
     } 
     else { 
      // do something else 
     } 
    }); 

或者:

$('a').click(
    function(e){ 
     e.stopPropagation(); // stops the click moving up to the parent elements 
    }); 
1

爲了防止這種情況,你應該阻止事件冒泡。 對於沒有w3c瀏覽器的情況,有cancelBubble屬性,其他方式有stopPropagation。

以您希望更好地使用它來設置一種風格事件的方式。對於這種情況下,jquery有: event.stopPropagationevent.stopImmediatePropagation 防止它在所有瀏覽器中以單向方式冒泡的方法。