【问题标题】:Javascript - event is triggered when addedJavascript - 添加时触发事件
【发布时间】:2015-08-25 09:21:51
【问题描述】:

我正在尝试不断向所有输入元素添加一个 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
}

【问题讨论】:

    标签: javascript html dom-events onclicklistener


    【解决方案1】:

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

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

    应该是

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

    【讨论】:

      猜你喜欢
      • 2012-12-13
      • 2012-05-05
      • 2022-06-11
      • 1970-01-01
      • 1970-01-01
      • 2011-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多