2011-04-22 110 views
3

preventDefault()不能在div onclick上工作,我試過preventDefault和stopImmediatePropagation也沒有任何作用,請看下面的示例。e.preventDefault()不能在div onclick上工作

<title></title> 

<script src="scripts/jquery-1.5.2.min.js" type="text/javascript"></script> 

<script type="text/javascript"> 

    $().ready(function() { 
     $("div").click(function (e) { 
      e.preventDefault(); 
      //e.stopImmediatePropagation(); 
      return false; 
     }); 

     //$("div").bind("click", function (e) { e.stopImmediatePropagation(); return false; }); 

    }); 

</script> 

<div onclick="alert('1');"> 

    Sample text 

</div> 

+0

你怎麼知道它不工作,即你看到的是什麼默認行爲或你觀察到的祖先元素的事件? – alex 2011-04-22 06:50:17

+0

您無法確保您的綁定活動將首先運行。你試過$('div')嗎?removeAttr('onclick')? – regilero 2011-04-22 07:44:46

回答

3

沒有默認行爲點擊div。你想阻止什麼?

另外event.stopPropagation()是阻止事件冒泡祖先和觸發他們的事件處理程序。你的情況觸發了什麼?

+0

您好我試圖阻止在div onclick事件中定義的警報,第一次警報正在觸發,然後e.preventdefault正在執行 – user720149 2011-04-22 07:26:52

+0

我認爲這是因爲jQuery在事件結尾附加了***。click()***事件直接聲明到DOM中。另外,像Alex說的那樣,alert(「1」)是一個自定義事件,而不是*默認行爲*。 – dmarucco 2011-04-22 08:39:03