2011-04-22 114 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