我在一个对象上有一个事件监听器,它在对象发生变化时触发一个函数。
这是代码:
window.parent.document.getElementById('campval').addEventListener("change", getscriptbuttons1());
这在第一次更改对象时非常有效,但是所有连续更改都不会触发事件侦听器。
这是Javascript的正常行为吗?我该怎么做才能解决这个问题?
答案 0 :(得分:2)
不,每次都会触发事件监听器。
我认为这个错误是因为您正在调用该函数而不是将其作为参数传递:
getscriptbuttons1 // passes the function
getscriptbuttons1() // calls the function and passes whatever it returns
你的意思是? :
window.parent.document.getElementById('campval').addEventListener("change", getscriptbuttons1);
答案 1 :(得分:1)
不,他们不会被摧毁。您必须手动删除它们。问题是您实际上是在事件侦听器中调用该函数。你需要改变它:(没有parens,不要叫它)
window.parent.document.getElementById('campval').addEventListener("change", getscriptbuttons1);