IE 7中e.preventDefault的问题

时间:2012-05-17 21:07:35

标签: jquery internet-explorer-7

所以我在我网站的顶部有一个链接列表,允许用户点击它们,当这个点击事件发生时,我有一个javascript函数,在页面上的div内滚动一个非常大的链接列表。问题出在IE7以及它在触发时如何处理click事件。我正在使用jquery来阻止默认操作,这在Chrome,Safari,Firefox和IE 8/9中运行良好,但在IE7中,浏览器试图以默认方式使用锚点。这个锚的href属性只是一个字符串,可以帮助我识别页面下半部分的链接。如果我单击IE7中的链接,我会得到一个404,但是如果我点击后退按钮并再次单击该链接,则脚本可以正常工作并以正确的方式处理事件。我也试过

event.preventDefault ? event.preventDefault() : event.returnValue = false;

而不是e.preventDefault(),但这对IE7在我的场景中处理click事件的方式没有影响。

有什么建议吗?此外,在我的页面上,我有一个选项卡式导航,如果用户当前正在查看其他选项卡(只有2个选项卡),则会隐藏与该选项卡关联的数据。任一选项卡中的内容大致相同,结构完全相同但是当我执行完全相同的过程导致上面第一个(默认)选项卡中的链接上面描述的错误时,IE没有问题。

1 个答案:

答案 0 :(得分:0)

事实证明,IE7在将事件绑定到页面上隐藏的元素方面存在一些问题。或者至少这是我能够解决的问题。我没有使用.click事件处理程序,而是找到了一个名为.on()的jQuery提供的方法,它取代了自1.7版以来不推荐使用的.live()方法。

  

“.on()方法将事件处理程序附加到当前选定的集合   jQuery对象中的元素。从jQuery 1.7开始,使用.on()方法   提供附加事件处理程序所需的所有功能。“

此接缝可解决IE7中的问题。

相关问题