2012-05-17 70 views
0

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

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

代替e.preventDefault的(),但是这使得在IE7如何处理我的情况click事件没有差别。

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

+0

请向我们展示您的完整代码。 – gdoron

+1

需要查看具有点击处理程序的功能 – Neil

回答

0

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

“的。对()方法附加事件处理程序到当前选定设置在jQuery对象元素的 。在jQuery 1.7中,。对()方法 提供用于附接的事件处理程序所需的所有功能“。

这个问题解决了IE7中的问题。