JavaScript 解決 onblur 與 onclick 沖突


<input type="text" onblur="function1" />
<input type="button" onclick="function2" value="保存" />

上面的代碼會出現一種問題:當點擊按鈕的時候,onblur 會執行,onblur 一般是用來檢查文本框的內容,我們並不希望在點擊按鈕的時候執行,並且 onblur 會執行在 onclick 之前。

解決方式:

var tid;
onblur = function(){
    tid = setTimeout(function(){
        //do blur save
    }, 25);
};

onclick = function(){
    clearTimeout(tid);
    //do click save
}

主要作用是延遲 onblur 的執行,在 onclick 執行的時候,取消 onblur 的執行(注意,點擊按鈕的時候,onblur 才會被觸發,所以延遲 25 ms是沒問題的)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM