event.preventDefault(); 当触发器是父div不链接?

我有一个div作为一些jQuery的触发器。 div包含一个链接。 有时单击div也意味着单击链接,我需要停止链接的行为。

我相信这可以通过event.preventDefault(); 但以下在IE8中不起作用。 我假设这是因为触发器是父div而不是实际链接,但我该如何解决这个问题呢? 谢谢

$('div#myDiv').click(function(){ event.preventDefault(); //other js here });  

您没有定义参数:

 $('div#myDiv').click(function(e){ e.preventDefault(); //other js here }); 

.preventDefault是jQuery事件对象中的jQuery shim。 它不存在于IE事件对象中。

Chrome和IE定义了一个全局event对象,它引用这些浏览器中的本机事件对象。 出于这个原因,请始终使用e ev evt等,这样您就不会意外地引用此全局事件对象,因为它不会获得jQuery错误修复和规范化。

文档: http : //api.jquery.com/category/events/event-object/

一个简单的解决方案可能是删除锚标记上的href属性。 虽然我不推荐这个,但可以是一个快速的解决方案。