无法正确使用.toggle()

时间:2014-02-25 10:54:30

标签: jquery toggle

我正在尝试在带有侧边栏和dataTable的页面中模拟引导程序中的offcanvas效果。我有一个按钮,点击时切换侧边栏,一切都很好:侧边栏正确显示和消失。我已经为该切换添加了一个回调函数。此回调更改数据表的col-md并在侧边栏旁边形成,使它们占据视口的整个宽度。当我第一次点击一切都工作,但在使它出现并消失一次后,当我再试一次没什么好开心时。

以下是代码:

$(BUTTON).on('click',function () {
    $(SIDEBAR).toggle(1000, function(){

        var test= $(DIV_OF_THE_DATATABLE).hasClass('active');
            if(test){
                $(DIV_OF_THE_DATATABLE).removeClass('col-md-9 active').addClass('col-md-offset-1 col-md-10');
                var p=$(DATATABLE).dataTable();


                p.fnAdjustColumnSizing();
            }else {
                $(DIV_OF_THE_DATATABLE).removeClass('col-md-10 col-md-offset-1').addClass('col-md-9 active');
                $(DIV_OF_THE_DATATABLE).fnDraw();
                var p=$(DATATABLE).dataTable();

                p.fnAdjustColumnSizing();
            }
    });

使用firebus我可以看到,当我第一次尝试点击按钮后(当它正常工作时),它会看到点击,但跳过测试部分(它甚至避免了测试变量声明)。 我错过了什么?

注意:选择器仅用于使代码更易于传播,问题不在那里,因为问题是选择器不应该在第一次点击时工作

这是一个小提琴: jsfiddle

0 个答案:

没有答案