在日常編碼中是否會遇到在編寫一個輸入組件時,我們需要用到文本框的change事件,又需要一個確認按鈕的click事件,這兩個事件調用的都是一個函數,這時輸入完成後,點擊確認事件就會調用兩次函數,出現重複調用問題。
有的人會說,去掉change事件,或者去電確認按鈕,但我認爲兩個都保留對於用戶體驗是很好的。
我的解決思路是給一個計數變量,之後使用setTimeout解除計數變量,這樣可以避免同時觸發change和click事件了
下面是解決方法:
var num = 0;
Input.addEventListener('change', inputChange);
Button.addEventListener('click', inputChange);
function inputChange(){
if(num>0) return;
num++;
setTimeout('num=0',500);
}