Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript IE8/9中的jQuery手风琴_Javascript_Jquery_Internet Explorer 8 - Fatal编程技术网

Javascript IE8/9中的jQuery手风琴

Javascript IE8/9中的jQuery手风琴,javascript,jquery,internet-explorer-8,Javascript,Jquery,Internet Explorer 8,[在我们开始之前:我认为-我希望-这是一个简单的jQuery语法问题。我通常不是jQuery的人-这是半货物崇拜编码。] 我正在使用jQuery在我创建的站点的各个页面上创建一个。具体来说,jQuery1.10.0(以及jQueryMigrate1.2.1和jQueryUI1.5.2) 在每个手风琴的上角,都有一个CSS背景图像——一个小箭头——它在“向上”或“向下”状态之间翻转,以指示手风琴是打开还是关闭。到目前为止,一切顺利 我使用的原始手风琴代码如下: $('.highli

[在我们开始之前:我认为-我希望-这是一个简单的jQuery语法问题。我通常不是jQuery的人-这是半货物崇拜编码。]

我正在使用jQuery在我创建的站点的各个页面上创建一个。具体来说,jQuery1.10.0(以及jQueryMigrate1.2.1和jQueryUI1.5.2)

在每个手风琴的上角,都有一个CSS背景图像——一个小箭头——它在“向上”或“向下”状态之间翻转,以指示手风琴是打开还是关闭。到目前为止,一切顺利

我使用的原始手风琴代码如下:

        $('.highlight').click(function(e){
            e.preventDefault();
            $(this).toggleClass('highlight-active').find('.highlight-body').not(':animated').slideToggle();
        });
适用于所有现代浏览器,也适用于IE8/9

问题是,如果用户双击手风琴,手风琴本身将被触发一次,但背景图像将被翻转两次(每次单击一次)。这就留下了一个打开的手风琴,它的背景图像设置为“关闭”的位置。很多人仍然双击网页上的内容,所以这是一个问题

这导致了代码的更新版本:

        $('.highlight').click(function(e){
            e.preventDefault();
            item = $(this);
            item.find('.highlight-body').not(':animated').slideToggle( function(){ item.toggleClass('highlight-active') } );
        });
…修复了双击时的双重触发问题

然而,它在IE8/9上不起作用,我认为,IE8/9似乎在
item=$(这一点)时被阻塞了

有没有一种简单的方法可以让第二个版本的代码在IE上整齐地工作?如果有人有任何答案或建议,我将不胜感激

(另外:如果这里有我明显遗漏的东西,我也很抱歉——jQuery通常不是我喜欢的。)


提前感谢。

jquery UI 1.5.2非常旧,我不确定它是否能与jquery 1.10.1一起正常工作,它是用于jquery 1.5.xAlso的,您应该使用
var item=$(这)
这样,如果它发生两次很快,您就不会在回调中得到错误的
item
。嗨,凯文,谢谢您提供的版本信息。另外,切换到
var item=$(this)
似乎可以解决IE中的问题。谢谢!如果你想告诉我我做错了什么,我很想知道更多。但奇怪的是,如果它解决了IE的问题,那么它在所有浏览器中都应该是一个问题。奇怪的