2014-09-30 53 views
0

我想下面的代码在除了IE(每版)的所有浏览器上运行。运行特定的jQuery代码?

$('#divid a').click(function(e) { 
    e.preventDefault(); 
}); 

我尝试了一些来自Stack的东西,但没有成功。

喜欢:

<![if ! IE]> 

    <script> 
     $('#divid a').click(function(e) { 
      e.preventDefault(); 
     }); 

    </script> 

    <![endif]> 
+0

看看这个问题=> http://stackoverflow.com/questions/19999388/jquery-check-if-user-is-using-ie – 2014-09-30 20:38:44

+1

为什么你需要这个不能在IE中运行?是因为你想为IE做一些特殊的事情,还是仅仅因为IE不支持这个功能呢?如果是后者,那么你就错了。 – 2014-09-30 21:02:12

回答

0

如果你不死心,在您的应用程序的其他部分,包括本:

window.checkIsIE = navigator.userAgent.indexOf('MSIE') != -1; 

您现在可以参考“checkIsIE”作为布尔值表示用户是否在使用IE的变量。

不洁懒惰?是;你所做的事情的基础也是如此。说实话,我不能否认,连我自己的工作产生了不能在清洁的方式来解决问题,但提醒请了清洁方式是检查有问题的浏览器是否支持该功能你需要它。甚至有框架可以帮助您确定是否支持某些CSS功能(想起Modernizr)。

上面的代码不会检测IE 11 - 我认为这是一个加号,因为一个良好的坚实打赌说什么奇怪的,你想规避IE11不会发生老-IE漏洞。

+0

谢谢你了。我的Jquery的问题是这是一个非常复杂的代码,甚至切换似乎不起作用。该错误也发生在IE11中。检查IE11上的这个链接。尝试选择一些文字,然后尝试点击现有的橙色单词。 http://withcommentary.com/?bookid=11&chapter=21"e=106 – 2014-09-30 23:22:32

+0

在这种情况下,为了解决您的问题,请将“MSIE”替换为“Trident”(IE的渲染引擎)。尽管如此,我真的鼓励你弄清楚你在自己的代码中错误地做了什么。这似乎是一些非常糟糕的使用innerHTML。 – Katana314 2014-10-01 14:26:00

+0

我愿意付钱给某人修复错误。让我知道你是否感兴趣。 – 2014-10-01 15:47:15

0

应该工作,确保这是其他代码,在所有浏览器

<!--[if IE]> 
    $(function(){ 
    $('#divid a').off(); 
    }); 
<![endif]--> 

所有你的代码所做的是本质上检查运行后浏览器是IE,然后添加另一个没有任何作用的点击事件使用.off()

-1

jQuery有$.browser对象,看到documentation

这可能帮助你

if(! $.browser.msie) { $('#divid a').click(function(e) { e.preventDefault(); }); }

+0

不,不,请参阅文档。 “这个属性在jQuery 1.9中被移除” – 2014-09-30 20:55:23

+0

哦对不起@KevinB,我总是使用这个,并没有注意到关于删除这个功能,但是,ES仍然可以使用这个,因为有jQuery.migrate插件:) – 2014-09-30 21:00:13

+0

我知道此功能已被删除。别担心,我试图从谷歌多的东西在这里发帖 – 2014-09-30 21:07:42