简体   繁体   English

onblur 在 window.onload 上触发

[英]onblur firing on window.onload

My onblur event is firing on window.onload .我的onblur事件在window.onload上触发。 I suspect I am selecting the node wrong.我怀疑我选择了错误的节点。 When I console.log(input) in function checkList() it shows <input name='newTask'> Is this the correct way to use onblur ?当我在function checkList() console.log(input)它显示<input name='newTask'>这是使用onblur的正确方法吗?

app.view = (function(){
    function init(){
        checkList();
    }

    function checkList(){
        var input = document.getElementsByName('newTask')[0];

        input.onblur = checkInput();

        requestAnimFrame(checkList);
    }

    function checkInput(){

        alert('check input');
    }

    return {
        init : init
    }
})();

window.requestAnimFrame = (function(){
    return  window.requestAnimationFrame       || 
            window.webkitRequestAnimationFrame || 
            window.mozRequestAnimationFrame    || 
            window.oRequestAnimationFrame      || 
            window.msRequestAnimationFrame     || 
            function( callback ){
                window.setTimeout(callback, 1000 / 60);
            };
})();

window.onload = function(){
    app.view.init();
}

Your onblur event isn't firing early, but rather you are calling your checkInput function, when you really mean to make an assignment.您的onblur事件并没有提前触发,而是在您真正想要进行分配时调用了checkInput函数。

Replace input.onblur = checkInput();替换input.onblur = checkInput(); with input.onblur = checkInput;input.onblur = checkInput;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM