我正在尝试在带有侧边栏和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