0

我有一个 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>
4

2 回答 2

4

您没有定义参数:

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

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

Chrome 和 IE 定义了一个全局event对象,该对象引用这些浏览器中的本机事件对象。出于这个原因,总是使用e ev evtetc 这样你就不会意外地引用这个全局事件对象,因为它不会得到 jQuery 错误修复和规范化。

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

于 2012-08-07T11:54:58.787 回答
0

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

于 2012-08-07T11:56:00.593 回答