我使用的是jQuery File Upload插件。我初始化這樣的插件:如何從jQuery文件上傳中正確解除回調?
var _this = this;
_obj = {
autoUpload: true,
maxFileSize: 1000000 // 1mb
};
FileProofer.$uploadform.fileupload(_obj)
.bind('fileuploadprogress', function (e, data) {
_this.handleFileProgress(data);
}).bind('fileuploadadded', function (e, data) {
_this.checkAddedFiles(data);
})
再後來我與它分離:
FileProofer.$uploadform.fileupload('destroy');
According to the documentation,這應該刪除所有事件偵聽器。但是,當我再次運行相同的初始化代碼時,我可以看到fileuploadadded
被連接了兩次(我在_this.checkAddedFiles中使用console.log)。
所以它看起來像摧毀電話是不是真的工作。我在這裏做錯了什麼?
對於那些有興趣誰的一些背景資料:我重新連接fileuploader的原因是,我試圖重新用於不同的產品在購物車相同的HTML。根據
_destroyEventHandlers: function() {
this._off(this.options.dropZone, 'dragenter dragleave dragover drop');
this._off(this.options.pasteZone, 'paste');
this._off(this.options.fileInput, 'change');
:
調用'destroy'方法之後,你是否檢查過它是否真的刪除了所有添加的事件偵聽器? –
不,我沒有真正意識到查看事件監聽器註冊的好方法。 –