如何删除此JavaScript函数中设置的事件侦听器?如果可能,我想从其他功能执行此操作吗?如果这不可能,则可以从同一函数中使用。
function _dtmCheckFundingEditLink() {
function _dtmGetCurrentFundingAmount() {
var currAmt = "NA";
try {
currAmt = sessionStorage.getItem("_dtmFundAmount");
} catch (err) {
return currAmt;
}
return currAmt;
};
editLink = document.querySelectorAll('.btn-grp-back');
if (editLink != null) {
editLink[2].addEventListener('click', function() {
var clNm = s.pageName + ":" + _dtmGetCurrentFundingAmount() + ":edit";
_dtmReportCL(clNm);
})
} else {
setTimeout(_dtmCheckFundingEditLink, 1000);
}
};
最佳答案
将事件侦听器调用的函数声明为一个单独的函数,而不是匿名函数:
function handler(){
//handle event
}
添加事件监听器:
.
.
.
if (editLink != null) {
editLink[2].addEventListener('click', handler);
} else {
setTimeout(_dtmCheckFundingEditLink, 1000);
}
.
.
.
现在您可以从单独的函数中删除该处理程序:
function sampleFunction(){
editLink = document.querySelectorAll('.btn-grp-back');
editLink[2].removeEventListener('click', handler);
}