我遇到按键注册事件两次的问题。我目前正在使用.live,因为HTML元素是动态加载和频繁更改的。
我确实尝试过使用keydown和keypress,但结果并没有什么不同。有人能够发现导致他们两次注册的原因吗?
Javascript:
$(".class3").live('keypress', function (e) {
if ( e.keyCode == 13 ){
alert("Enter key pressed");
}
});
HTML:
<dd class="class1 class2">
<input type="text" class="class2 class3" placeholder="Type Name Here">
</dd>
答案 0 :(得分:2)
您尚未正确粘贴代码。你要做的是:
$(".class2").live('keypress', function (e) {
if ( e.keyCode == 13 ){
alert("Enter key pressed");
}
});
发生这种情况的原因是因为您的keypress
事件正在冒泡。因此,它会针对input
触发一次,然后针对dd
触发。
如果您确实只在keypress
上收听$(".class3")
,那么它只会触发一次。