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
我一直在尝试向所有输入元素添加 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