首页 > 解决方案 > 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()”。为什么是无限的?

标签: javascript

解决方案


因为再次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" />


推荐阅读