我有一个div作为一些jQuery的触发器。 div包含一个链接。有时单击div也意味着单击链接,我需要停止链接的行为。
我相信这可以通过event.preventDefault();但以下在IE8中不起作用。我假设这是因为触发器是父div而不是实际链接,但我该如何解决这个问题呢?谢谢
$('div#myDiv').click(function(){
event.preventDefault();
//other js here
});
<div id="myDiv">
<a href="#">Link</a>
</div>
答案 0 :(得分:4)
您没有定义参数:
$('div#myDiv').click(function(e){
e.preventDefault();
//other js here
});
.preventDefault
是jQuery事件对象中的jQuery shim。它不存在于IE事件对象中。
Chrome和IE定义了一个全局event
对象,该对象引用这些浏览器中的本机事件对象。出于这个原因,请始终使用e
ev
evt
等,这样您就不会意外地引用此全局事件对象,因为它不会获得jQuery错误修复和规范化。
答案 1 :(得分:0)
一个简单的解决方案可能是删除锚标记上的href
属性。虽然我不推荐这个,但可以快速解决。