我有这样的功能:
var InitScrollbar = function () {
... variables, object, handlers, ecc
}
在调整大小时,我想销毁它以及其中的所有变量/处理程序/对象。尝试过:
$(window).on("resize", function (e) {
InitScrollbar = null;
//InitScrollbar();
});
但调整大小后,其中的处理程序将再次起作用。
我怎么能销毁一切?
最佳答案
您可以实现一种dispose方法来调用,例如:
var InitScrollbar = function () {
// variables, object, handlers, ecc
this.Dispose = function(){
//clear / detach all your handlers here
}
}
然后以这种方式使用它:
$(window).on("resize", function (e) {
InitScrollbar.Dispose();
//InitScrollbar();
});
编辑:
由于您没有实例化InitScrollbar,因此应更改方法,请尝试以下操作:
var InitScrollbar = function () {
// variables, object, handlers, ecc
}
var DisposeScrollbar = function(){
//clear / detach all your handlers here
//take care of correctly reference to InitScrollbar properties
}
然后以这种方式使用它:
$(window).on("resize", function (e) {
DisposeScrollbar();
});
关于javascript - 如何删除函数及其中的所有对象/处理程序?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20496666/