javascript模糊焦点无限循环

时间:2018-06-22 02:52:43

标签: javascript

<script>
         window.onload = function(){
             
         var input = document.getElementById("test");
         input.addEventListener("blur",function(){
            if(confirm("confirm")){
                alert("true.");
            }else{
                alert("false.");
                input.focus();
            }
         });
         }
    </script>

我解决了它被“ input.focus()”删除的问题。 但是我想使用“ input.focus()”。 为什么是无限的?

1 个答案:

答案 0 :(得分:0)

因为alert将在您再次调用input.focus后触发模糊。

您最好设置超时以避免这种情况:

window.onload = function() {

    var input = document.getElementById("test");
    input.addEventListener("blur", function() {
        if (confirm("confirm")) {
            alert("true.");
        } else {
            alert("false.");
            setTimeout(function(){
              input.focus();
            }, 10)
            
        }
    });
}
<input id="test" />