仅在非IE浏览器上运行特定的Jquery代码?

时间:2014-09-30 20:36:49

标签: javascript jquery internet-explorer

我希望在IE(每个版本)之外的所有浏览器上运行以下代码。

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

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

像:

    <![if ! IE]>

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

    </script>

    <![endif]>

3 个答案:

答案 0 :(得分:0)

应该有效,请确保这是在所有浏览器中运行的其他代码之后

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

你的代码所做的一切主要是检查浏览器是IE然后添加另一个什么都不做的点击事件。使用.off()

答案 1 :(得分:0)

如果你不被劝阻,在你的应用程序的其他部分,请包括:

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

您现在可以将“checkIsIE”称为布尔变量,指示用户是否使用IE。

不干净和懒惰?是;你正在做的事情的基本原则也是如此。说实话,我不能否认即使是我自己的工作也会导致无法以干净的方式解决的问题,但请注意,干净的方式是检查浏览器是否有问题支持您需要的功能。甚至还有一些框架可以帮助您确定是否支持某些CSS功能(想象一下Modernizr)。

上面的代码没有检测到IE 11 - 我认为这是一个加号,因为一个好的可靠赌注说你试图规避的任何奇怪的,旧的IE错误都不会发生在IE11中。

答案 2 :(得分:-1)

jQuery有$.browser个对象,请参阅documentation

这可能会对你有所帮助

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