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