jQuery绑定多次激活?

$(".container").on("contextmenu", ".photos-bottom .albums li", function(e) { $('html').bind('click', function (event) { alert(id); }); return false; }); 

当我右键单击(对于contextmenu)多次,然后左键单击html一次,它会触发警报我右键单击的次数。

因此,如果我右键单击一次,然后左键单击,它会显示一次弹出窗口。 如果我右键单击三次,然后左键单击,它会弹出三次弹出窗口。

为什么会这样?

$('html').unbind('click').bind('click')修复它。

因为每次发生上下文菜单事件时都会绑定click事件,所以每次右键单击时实际上都会添加一个额外的绑定。 这是事件执行次数不断增加的原因。

你应该:

a)在上下文菜单关闭时取消绑定事件,或

b)将click事件绑定到contextmenu回调函数之外。