Bxslider,部分回发和slideToggle重置滑块宽度

时间:2012-09-24 12:02:43

标签: jquery ajax webforms slidetoggle bxslider

我的bxslider工作,但是当我尝试在a)updatepanel或b)jquery ajax调用之后运行它时,宽度重置为100px而不是我的外部div的宽度960px。这发生在一些基本动画之后,例如slideToggle或show。这是我的代码

 <script type="text/javascript">
    function pageLoad(sender, args) {
        if (args.get_isPartialLoad()) {
            var eventSlider = $("#season-slider").bxSlider();

        $(".event-list li a").click(function() {
            //var eventID = $(this).
            var selectedIndex = $(this).closest("li").index();

            $('html, body').animate({ scrollTop: 0 }, 'slow',
            function() {
                eventSlider.goToSlide(selectedIndex - 1);
            });

            //eventSlider.reloadShow();
        });

        $(".down-slide-panel").stop(true, true).slideToggle('slow', "easeOutQuart", function () {});
        }
        else {

        }
    }
</script>

当我执行slideToggle位时,它的宽度已重置为100px,如果我没有slideToggle它工作正常。所以我尝试将slidetoggle更改为show()并遇到了同样的问题。为什么这些动画将其宽度重置为100px?

奇怪的是,这只发生在Chrome,Firefox和IE9中,而不是在IE7或IE8中!

1 个答案:

答案 0 :(得分:0)

在这里找到了答案,虽然他们使用.show()时遇到的问题略有不同,但是对于slideToggle()的解决方案相同

bxSlider within show/hide divs

在slideToggle()使其适用于所有浏览器之后,简单地执行以下操作。

eventSlider.reloadShow();