<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是没问题的)。 |