日期:2014-05-16  浏览次数:20342 次

关于js处理失去焦点问题。
有个输入框<input type="text"......> ,加了一个 onblur方法。

输入框上面有几个按钮,是给输入框里面的文件加粗,加斜线的。但是在点击按钮的时候,由于是失去焦点,在click事件之前,调用了onblur方法,我不希望这样,有什么方法来实现点击按钮又不调用onblur?
------解决方案--------------------
去掉onblur方法
------解决方案--------------------
有focus  就有blur

------解决方案--------------------
在onblur事件函数中延时执行逻辑,判断焦点是否在几个目标按钮上,如是,将焦点设置回来,否则执行事件逻辑,示例:
xx.onblur = function(){
    setTimeout(function(){
        if(焦点在几个目标按钮上) {
            执行事件逻辑
        } else {
            xx.focus();
        }
    },1);
}
------解决方案--------------------
延时 执行blur 是个不错的办法。