Javascript - 添加时触发事件

Javascript - event is triggered when added

我一直在尝试向所有输入元素添加 EventListener。

但是当我添加 EventListener 时,该函数被触发。

window.onload = window.setInterval(function () {
    var frame = document.getElementsByTagName("FRAME");
    for (var i = 0; i < frame.length; i++) {
        frame_doc = frame[i].contentWindow.document || frame[i].contentDocument;
        var elem = frame_doc.getElementsByTagName("INPUT");
        for (var j = 0; j < elem.length; j++)
            if (elem[i]) {
                alert(true);
                //if(typeof elem[i].onclick === "function") 
                //removeEvent(elem[i], "click", check());
                addEvent(elem[i], "click", check());
            }
    }
}, 50);

function addEvent(elem, event, fn) {
    if (elem.addEventListener) {
        elem.addEventListener(event, fn, false);
    } else {
        elem.attachEvent("on" + event, function () {
            return (fn.call(elem, window.event));
        });
    }
}

function check() {
    //Do Something
}

因为您在将事件绑定到新元素时调用了该函数。 当你在绑定事件时使用check(),函数check被调用。您可以删除 check

()
addEvent(elem[i], "click", check());

应该是

addEvent(elem[i], "click", check); // removed () of check