IE8 / 9中的jQuery手风琴

时间:2013-09-05 19:26:48

标签: javascript jquery internet-explorer-8

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

我正在使用jQuery在我正在制作的网站的各个页面上创建accordion effect。具体来说,jQuery 1.10.0(以及jQuery Migrate 1.2.1,加上jQuery UI 1.5.2)。

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

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

        $('.highlight').click(function(e){
            e.preventDefault();
            $(this).toggleClass('highlight-active').find('.highlight-body').not(':animated').slideToggle();
        });

适用于所有现代浏览器,也适用于IE8 / 9。

这个问题是如果用户 - 在手风琴上点击,那么手风琴本身将被触发一次,但背景图像会被翻转< em>两次(每次点击一次)。然后,该页面打开了一个开放式手风琴,其背景图像设置为“关闭”位置。很多人仍然双击网页上的内容,所以这是一个问题。

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

        $('.highlight').click(function(e){
            e.preventDefault();
            item = $(this);
            item.find('.highlight-body').not(':animated').slideToggle( function(){ item.toggleClass('highlight-active') } );
        });

...修复了双击双击问题。

然而,它不能用于IE8 / 9,我认为它似乎在item = $(this);处窒息。

有没有一种简单的方法可以让第二版代码在IE上运行得很好?如果有人有任何答案或建议,我将非常感激。

(另外:对不起,如果有一些明显我在这里丢失的东西 - jQuery通常不是我的事。)

提前致谢。

0 个答案:

没有答案