bxslider仅在IE中与slideToggle冲突

时间:2011-12-04 23:22:55

标签: jquery

我发现了这个jquery插件,除了IE之外,它的效果很好。

http://bxslider.com/

如果我在代码中插入bxslider,则jquery幻灯片切换失败。

   <div>
        <span><a href="#" class="tabbutton" id="tabbtnA">Visual</a></span>&nbsp; 
        <span><a href="#" class="tabbutton" id="tabbtnB">Keywords</a></span>
  </div>
    <div id="tabA" class="tabcontent">
        1<br />
        2<br />
        3
    </div>
    <div id="tabB" style="display: none;" class="tabcontent">
        test<br />
        test<br />
        test
    </div>
<script>

    $(document).ready(function () {
        $('#tabbtnA').click(function () {
            $('#tabA').slideToggle(400);
            $('#tabB').slideToggle(200);
        });
        $('#tabbtnB').click(function () {
            $('#tabB').slideToggle(400);
            $('#tabA').slideToggle(200);
        });
    });
</script>

有趣的是,如果我在jquery之前插入bxslider.js,它在某些情况下可以正常工作。 (不是我试过的所有页面。)

- 失败 -

<script src="http://code.jquery.com/jquery-latest.js" type="text/javascript"></script>
<script src="http://bxslider.com/sites/default/files/jquery.bxSlider.min.js" type="text/javascript"></script>

错误 - SCRIPT87:参数无效。 jquery-1.6.4.js,第8602行5字符

/* here is line 8602 */   
 fx.elem.style[ fx.prop ] = (fx.prop === "width" || fx.prop === "height" ? Math.max(0, fx.now) : fx.now) + fx.unit;

- 工程 -

<script src="http://bxslider.com/sites/default/files/jquery.bxSlider.min.js" type="text/javascript"></script>
<script src="http://code.jquery.com/jquery-latest.js" type="text/javascript"></script>

有没有办法解决这个问题?

更新:如果我从bxslider.js中删除此脚本块,它似乎可以正常工作,虽然我不知道bxslider会发生什么。

jQuery.fx.prototype.cur = function () {
        if (this.elem[this.prop] != null && (!this.elem.style || this.elem.style[this.prop] == null)) {
            return this.elem[this.prop]
        }
        var a = parseFloat(jQuery.css(this.elem, this.prop));
        return a
    }

1 个答案:

答案 0 :(得分:1)

感谢您提供的信息。我收到同样的错误。 当我运行任何jQuery动画函数(animate,slideToggle等)时,IE中会出现Script 87错误(&lt; 9)。 你正确使用该块删除它可以解决冲突。 删除块的效果是滑块不会注意和css样式你应用它的元素,并将强制它自己的jQuery。 这可能会也可能不会打破滑块。

例如在我的实现中,我已将bx-pager(滑块控件)移动到bx-window div内的滑块下方。为此,我需要将bx-window div的大小调整到更大的高度。删除冲突块后,滑块脚本会忽略我添加的高度css规则并使其变小。 :( 我的解决方案是在我使用bxSlider的页面上不使用jQuery动画。