Javascript事件侦听器是否在触发后被销毁(默认情况下)?

Javascript事件侦听器是否在触发后被销毁(默认情况下)?,javascript,object,dom-events,event-listener,Javascript,Object,Dom Events,Event Listener,我在一个对象上有一个事件侦听器,当对象发生变化时,它会触发一个函数 代码如下: window.parent.document.getElementById('campval').addEventListener("change", getscriptbuttons1()); window.parent.document.getElementById('campval').addEventListener("change", getscriptbuttons1); 这在对象第一次更改时非常有效

我在一个对象上有一个事件侦听器,当对象发生变化时,它会触发一个函数

代码如下:

window.parent.document.getElementById('campval').addEventListener("change", getscriptbuttons1());
window.parent.document.getElementById('campval').addEventListener("change", getscriptbuttons1);
这在对象第一次更改时非常有效,但是,所有连续的更改都不会触发事件侦听器


这是Javascript的正常行为吗?如何纠正此问题?

否,事件侦听器每次都应被触发

我认为此错误是由于您正在调用函数,而不是将其作为参数传递:

getscriptbuttons1 // passes the function
getscriptbuttons1() // calls the function and passes whatever it returns

你是说

window.parent.document.getElementById('campval').addEventListener("change", getscriptbuttons1);

不,事件侦听器应该每次都被触发

我认为此错误是由于您正在调用函数,而不是将其作为参数传递:

getscriptbuttons1 // passes the function
getscriptbuttons1() // calls the function and passes whatever it returns

你是说

window.parent.document.getElementById('campval').addEventListener("change", getscriptbuttons1);

不,它们不会被摧毁。您必须手动删除它们。问题是您实际上是在事件侦听器中调用函数。您需要将其更改为:(不,不打电话)


不,他们不会被摧毁。您必须手动删除它们。问题是您实际上是在事件侦听器中调用函数。您需要将其更改为:(不,不打电话)