onblur在window.onload上发射

时间:2012-09-19 07:28:05

标签: javascript events onblur

我的onblur事件正在window.onload开始。我怀疑我选择了错误的节点。当我在console.log(input) function checkList()时显示<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();
}

1 个答案:

答案 0 :(得分:2)

您的onblur事件未提前触发,而是在您真正打算进行作业时调用checkInput函数。

input.onblur = checkInput();替换为input.onblur = checkInput;