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