我想在将动态注入的HTML上检测何时按下回车键。
要简单地检测何时按下回车键,我可以做:
$('#textfield').keydown(function (e){
if(e.keyCode == 13){
console.log('Enter was pressed');
}
})
这段代码适用于on()
,但我担心它效率低下,因为每次按下键时jQuery都会进行检查。这有什么低效的地方吗?
$('body').on('keydown','#textfield', function(event) {
if (event.keyCode == 13) {
console.log('Enter was pressed');
}
}
如果您想在页面上的任何位置捕获按键-
$(document).keypress(function(e) {
if(e.which == 13) {
// enter pressed
}
});
不用担心这会检查每一次按键,它确实不会给浏览器带来任何重大负载。
您仍然可以使用.on()
$(document).off('keyup#textfield');
$(document).on('keyup#textfield', function(event) {
if (event.keyCode == 13) {
console.log('Enter was pressed');
}
});
在实际应用中,无需担心。浏览器已经在冒泡该事件,即使它可能被body
捕获并从委托事件中运行选择器,这对JQuery来说并不是一个深入或困难的实际检查,尤其是对于仅ID的选择器。