我正在尝试处理有人在我页面上的任何<textarea>
上按ENTER的情况。加载时并非所有<textarea>
都在页面上(它们可以通过用户事件动态添加),因此我不知道页面加载时每个<textarea>
id(因此可以'使用jQuery通过id)监听每个事件。我还尝试使用JS onkeydown
事件,但我无法找到一种方法来检测导致onkeydown
事件触发的键。
那么,有没有办法在我的页面上处理所有<textarea>
keydown,以及导致该事件的哪个键,或者是否有一个我似乎缺少的优雅解决方案?一些全球性事件?
答案 0 :(得分:3)
$("textarea").live("keydown",function(){
// process
})
或者您可以使用delegate
这样做是将侦听器应用于执行的所有textareas以及该实例的未来。因此,如果DOM添加了任何textareas,它也会将该按键绑定到它们。
答案 1 :(得分:3)
使用delegate
。您可以指定body
或任何container
来保存所有这些动态textareas。
$("body").delegate("textarea", "keydown",function(e){
// code logic goes here
if(e.which == 13){
//Enter key down
}
});
答案 2 :(得分:2)
event.which
会告诉您哪个键。
$('textarea').live("keydown", function(e) {
// e.which is which key, e.g. 13 == enter
});
答案 3 :(得分:0)
为什么不使用JQuery然后将textarea添加为“动态”添加监听器/处理程序....有很多示例用于处理onKeyPress事件