我有一个元素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
时,它会针对这些函数中的每一个运行吗?或者是其他事情继续发生。如果是这样,我如何重构我的代码来修复这个错误?
答案 0 :(得分:1)
确实发生了这种情况,因为多次绑定到click事件。要在绑定单击处理程序之前解决此问题,请使用
取消绑定任何现有处理程序$(".print").off("click")