MCustomScrollbar正确调整大小以切换?

时间:2014-03-21 16:44:46

标签: javascript jquery scrollbar

请告诉我。如何在Toggle中正确调整CustomScrollbar的大小? 现在只有两次点击才能起作用..

http://jsfiddle.net/xmocartx/ktTKe/

    $( document ).ready(function() {
    var open = $('.open'),
    a = $('.location_cont').find('a.open');
    console.log(a.hasClass('active'));
    open.click(function(e){
    e.preventDefault();
    var $this = $(this),
        speed = 300;
    if($this.hasClass('active') === true) {
        $this.removeClass('active').next('.item_in').slideUp(speed);
    } else if(a.hasClass('active') === false) {
                $(".item_in ul").css("resize", true);
        $this.addClass('active').next('.item_in').slideDown(speed);
    } else {
        a.removeClass('active').next('.item_in').slideUp(speed);
        $this.addClass('active').next('.item_in').delay(speed).slideDown(speed);
    }
});
});

$( document ).ready(function() {
    $(".item_in ul").customScrollbar({
    skin: "default-skin", 
    hScroll: false,
    });
    $(document).on("click",function(){
                $(".item_in ul").customScrollbar("resize", true);
    });

});

1 个答案:

答案 0 :(得分:0)

问题在于,您的if / else语句不会使用$(this)而是使用对a的模糊引用。

您的第一个if语句是正确的:if ($this.hasClass('active') === true)

但接下来的其他/ if不正确:else if(a.hasClass('active') === false)

应该阅读else if($this.hasClass('active') === false)

示例:http://jsfiddle.net/ktTKe/3/