我有一个元素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")