$(".container").on("contextmenu", ".photos-bottom .albums li", function(e) {
$('html').bind('click', function (event) {
alert(id);
});
return false;
});
当我右键单击(对于contextmenu)多次,然后左键单击html一次,它会触发警报我右键单击的次数。
因此,如果我右键单击一次,然后左键单击,它会显示一次弹出窗口。 如果我右键单击三次,然后左键单击,它会显示三次弹出窗口。
为什么会这样?
答案 0 :(得分:19)
$('html').unbind('click').bind('click')
修复了它。
答案 1 :(得分:4)
因为每次上下文菜单事件发生时都会绑定click事件,所以每次右键单击时实际上都会添加一个额外的绑定。这就是事件执行次数不断增加的原因。
你应该:
a)在关闭上下文菜单时取消绑定事件,或
b)将click事件绑定到contextmenu回调函数之外。