如何在创建新的之前销毁gridstack?

时间:2015-03-31 01:57:25

标签: javascript jquery backbone.js

我使用单页应用程序,我在3页中创建3个Gridstack 如果我逐个打开页面,每个页面调整窗口小部件的速度会变慢。
但是,如果我重新加载页面,它可以正常工作。

我使用Backbone的路由器打开每个页面(不是重新加载页面) 这是我的代码:
网格satck.js

createGridStack: function(gridEl) {
        var options= {
            animate: true,
            width: 12,
            cell_height: 50,
            resizable: {
                handles: "e, se, s, sw, w"
            }
        };
        $(gridEl).gridstack(options);
    }

模板:div class =' grid-stack' />

HomePageLayout.js

return Backbone.Marionette.LayoutView.extend({
    template: "template",
    onShow: function() {
       createGridStack($(".grid-stack"));
       this.gridStack = $(gridStackEl).data('gridstack');
       this.gridStack.movable('.grid-stack-item', false);
       this.gridStack.resizable('.grid-stack-item', false);
    }
})

ClientLayout.js

return Backbone.Marionette.LayoutView.extend({
    template: template,
    onShow: function() {
       createGridStack($(".grid-stack"));
       this.gridStack = $(gridStackEl).data('gridstack');
       this.gridStack.movable('.grid-stack-item', false);
       this.gridStack.resizable('.grid-stack-item', false);
    }
})

LayoutSetting.js

return Backbone.Marionette.LayoutView.extend({
    template: "template",
    onShow: function() {
       createGridStack($(".grid-stack"));
       this.gridStack = $(gridStackEl).data('gridstack');
    }
})

1 个答案:

答案 0 :(得分:1)

尝试

this.gridStack.removeAll();

destroy()

请参阅文档here