我有一个元素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时,它将为这些函数中的每一个运行一次?还是发生了其他事情。如果是这样,我该如何重构我的代码以解决此错误?

最佳答案

确实发生这种情况是因为多次绑定到click事件。要在绑定点击处理程序之前解决此问题,请取消将任何现有处理程序与

$(".print").off("click")

10-04 21:26