I want to detect when the enter key is pressed, on HTML that will be injected after the js loads.
To simply detect when the enter key is pressed, I can do:
$('#textfield').keydown(function (e){
if(e.keyCode == 13){
console.log('Enter was pressed');
}
})
This code works for on(), but I am worried it is inefficient since jQuery will check every time a key is pressed. Is there anything inefficient about this?
$('body').on('keydown','#textfield', function(event) {
if (event.keyCode == 13) {
console.log('Enter was pressed');
}
}
If you want to capture the keypress anywhere on the page -
Don't worry about the fact this checks for every keypress, it really isn't putting any significant load on the browser.
In practical terms, nothing you have to worry about. The browser is already going to be bubbling that event, and even though it may be trapped by the
body
and run a selector from the delegated event, this is not a deep or difficult practical check for JQuery to perform, especially with an ID-only selector.You could still use .on()