Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 删除不工作的事件侦听器_Javascript_Jquery - Fatal编程技术网

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中设置的单击事件?您可能需要一个命名和定义的函数来删除可能的重复项