我注意到jQuery中live()
函数有一种奇怪的行为:
<a href="#" id="normal">normal</a>
<a href="#" id="live">live</a>
$('#normal').click(clickHandler);
$('#live').live('click', clickHandler);
function clickHandler() {
alert("Clicked");
return false;
}
当你右键点击“活动”链接并触发处理程序时,它不会显示上下文菜单,这很好,但是问题出现了。在“普通”链接上,事件处理程序根本不会触发(正如预期的那样)。
我已经通过更改处理程序来解决此问题:
function clickHandler(e) {
if (e.button != 0) return true;
// normal handler code here
return false;
}
但是在所有事件处理程序中都添加这个代码真的很烦人。有没有更好的方法使事件处理程序只像常规的点击处理程序一样触发?
live
点击时,双击右键可以始终弹出上下文菜单。 - Funka