当包含jQuery脚本时,老式的html onclick返回false在inIE中不起作用

时间:2010-03-12 21:04:01

标签: javascript jquery html javascript-events

好的,所以我对jQuery很陌生,但刚才发现了这个奇怪的问题,

如果我们暂时忽略jquery并考虑这种情况,如果我有两个链接,如下面的href和with和onclick事件。第一个链接不会跟随href,因为onclick返回false,第二个链接将因为onclick返回true。

<a href="/page.html" onclick="return false;">Dont follow</a>

<a href="/page.html" onclick="return true;">Follow</a>

这在每个浏览器中只应该是hunky dory,事实上,只要我在页面上包含jQuery脚本,它就会停止在IE的所有版本中工作,然后总是跟随href,无论onclick返回false还是不。 (它继续在其他浏览器中正常工作)

现在,如果我使用jquery添加一个事件并在事件对象上调用.preventDefault()而不是以旧式方式执行此操作,并且您可能会说,那么这样做呢?但我有一个包含数千行代码的网站,我正在添加jquery支持,我不想冒险我可能会错过已定义的html onclick =“”并打破网站。

我不明白为什么jQuery应该阻止完全正常的javascript概念工作,所以这是一个jQuery错误还是我错过了什么?

3 个答案:

答案 0 :(得分:3)

最可能的原因是您在页面的其他位置出现语法错误,导致javascript无法在页面上正常运行。在浏览器中启用脚本错误通知,以确保它不会隐藏您的错误。

答案 1 :(得分:2)

另请尝试:

onClick = "event.returnValue = false; return false;"

答案 2 :(得分:0)

我更正了第二个链接的示例代码并在IE 8中进行了测试,它运行正常。我愿意打赌JohnFx是对的,你的页面上还有其他一些错误,导致它停止工作。

我也使用了包含的jquery库进行了测试。

样品:

   <html>
 <head>
  <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script> 
 </head>
 <body>
   <a href="/page.html" onclick="return false;">Dont follow</a>
   <a href="/page.html" onclick="return true;">Follow</a>
 </body>
    </html>