2016-08-15 242 views
0

我有這樣的代碼事件處理中事件處理程序乘以

jQuery('#parent').on('click', jQuery('#fileInput'), function (e) { 
    jQuery(e.target).attr('data-fileurl', ''); 
    jQuery('#parent').on('change', jQuery('#fileInput'), function (e) { 
     usefulFunction(jQuery(e.target); 
    } 
} 

這樣做是爲了檢測是否取消選擇的文件瀏覽,並且取得了成功,在這一點。

問題是如果我再次點擊它,那麼它將運行兩次.on('chance'),從而運行usefulFunction。每次點擊都會添加更改事件處理程序usefulFunction只應在每次更改jQuery('#fileInput')時運行一次。我怎樣才能防止這種意外的行爲?

回答

1

您應該使用one方法來代替:

jQuery('#parent').one('change', jQuery('#fileInput'), function (e) { 
        ^
...