试图了解导致此JavaScript错误的原因

时间:2014-05-25 19:21:52

标签: javascript jquery events javascript-events triggers

我有一个元素X,onclick,初始化/更新printControl,如下:

printControl.init(tab, source, location, start_month, end_month, year);

以下是printControl的相关代码:

var printControl = {
  init: function(tab, source, location, start_month, end_month, year) {
    $(".print").click(function() {
      window.print();
    });
  ...
  }
  ...

这是错误。当用户按下.print元素时,打印菜单将出现一次。但是,如果在没有重新加载页面的情况下单击元素X特定次数,则当用户按下.print元素时,默认打印菜单将打开该次数。

这是因为每次点击printControl时都会初始化一个新的X函数,所以当实际点击.print时,它会针对这些函数中的每一个运行吗?或者是其他事情继续发生。如果是这样,我如何重构我的代码来修复这个错误?

1 个答案:

答案 0 :(得分:1)

确实发生了这种情况,因为多次绑定到click事件。要在绑定单击处理程序之前解决此问题,请使用

取消绑定任何现有处理程序
$(".print").off("click")