1

我的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();
}
4

1 回答 1

2

您的onblur事件并没有提前触发,而是checkInput在您真正打算进行分配时调用您的函数。

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

于 2012-09-19T07:33:34.963 回答