jquery .on累积点击事件

时间:2017-10-23 20:52:51

标签: javascript jquery angular

我有一个组件管理一个视图,其中包含带游戏的arcticles并防止内存过载,如果在新窗口中打开或重新加载当前页面(带有复选框),则每篇文章都花费时间使用for;我创建了这段代码,当用户点击一篇文章(每个人都有“flashgame”类)时,根据用户的选择,它将转到游戏中,或者重新加载当前页面,或者在另一个窗口中打开并播放游戏 这是我的代码:

jQuery(document).on('click', '.flashgame', function () {
  console.log(this);
  let denom = jQuery(this).find('.urlGame').data('denom');
  let val = jQuery(this).find('.urlGame').data('val');
  if (denom != "") {
    let gamear = denom.toString().split(',');
    let orderset: any[] = gamear;
    if (orderset.length > 1) {
      that.multidenoms = orderset.sort((a, b) => { return a - b; });
      that.gameId = val;
      console.log("modalflash is showing");
      that.modalflash.show();
    }
    else {
      that.goToFlash(val, gamear);
    }
  }
  else {
    that.goToFlash(val);
  }
});

这是文章:

enter image description here

但出于任何原因,当我在项目中进行此更改时,页面已经累积了点击次数,例如:

硬重装和“点击次数”从零开始,我转到另一页然后返回,点击加1,依此类推。

那么,我该怎么办?,有没有办法防止这种“点击”过载?

1 个答案:

答案 0 :(得分:1)

我喜欢做的是在重新绑定事件处理程序之前在.on之前使用.off。 所以像这样:

jQuery(document).off('click', '.flashgame').on('click', '.flashgame', function () { ...