2016-07-07 71 views
2

我使用的是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'); 

+0

調用'destroy'方法之後,你是否檢查過它是否真的刪除了所有添加的事件偵聽器? –

+0

不,我沒有真正意識到查看事件監聽器註冊的好方法。 –

回答