Javascript 删除不工作的事件侦听器
我试图删除表中某些单元格的单击事件侦听器,但无法使其正常工作Javascript 删除不工作的事件侦听器,javascript,jquery,Javascript,Jquery,我试图删除表中某些单元格的单击事件侦听器,但无法使其正常工作 function DofmCalCheck() { const checkboxDofMElement = document.querySelectorAll('.checkboxDofM'); var cells = document.querySelectorAll('#Dofm_Table td'); cells.forEach(f => f.addEventListener('click', event
function DofmCalCheck() {
const checkboxDofMElement = document.querySelectorAll('.checkboxDofM');
var cells = document.querySelectorAll('#Dofm_Table td');
cells.forEach(f => f.addEventListener('click', event => {
document.querySelector("#" + f.getAttribute("data-val")).checked = !document.querySelector("#" + f.getAttribute("data-val")).checked;
}));
}
DofmCalCheck();
function MonthDofmBlocks() {
$("#Month_Table td").click(function(event) {
var NoD = parseInt($(this).attr("data-test"));
var Dofm = $("#Dofm_Table td");
for (var i = 0; i < Dofm.length; i++) {
var DofmVal = parseInt(Dofm[i].getAttribute("value")) + 1;
if (DofmVal > NoD) {
Dofm[i].classList.toggle('blocked');
Dofm[i].removeEventListener("click", DofmCalCheck, false);
console.log(Dofm[i]);
}
}
});
}
MonthDofmBlocks();
函数DofmCalCheck(){
const checkboxDofMElement=document.queryselectoral('.checkboxDofM');
var cells=document.queryselectoral(“#Dofm_Table td”);
cells.forEach(f=>f.addEventListener('click',event=>{
document.querySelector(“#”+f.getAttribute(“数据值”)).checked=!document.querySelector(“#”+f.getAttribute(“数据值”).checked;
}));
}
DofmCalCheck();
函数MonthDofmBlocks(){
$(“#月#表td”)。单击(函数(事件){
var NoD=parseInt($(this.attr(“数据测试”));
var Dofm=$(“#Dofm_表td”);
对于(变量i=0;iNoD){
Dofm[i].classList.toggle('blocked');
Dofm[i]。removeEventListener(“单击”,DofmCalCheck,false);
console.log(Dofm[i]);
}
}
});
}
monthdom()块;
在添加removeEventListener方法的地方,我将其设置为true和false,但仍然不起作用。就我所见,DofmCalCheck函数不是EventListener。您需要使用对事件发生时调用的实际回调函数的引用来删除,但是由于您为它们创建了匿名方法,这可能很棘手。看看你打算怎么做的例子。哦,我明白了!如何取消在DofmCalCheck中设置的单击事件?您可能需要一个命名和定义的函数来删除可能的重复项