我需要一些关于jQuery焦点功能的帮助。 我有一个输入字段,当按下Enter并且输入字段有焦点时我想做某事。
HTML:
<form class="myform">
<ul>
<input class="inputfield" type="text">
</ul>
</form>
和jQuery:
$(document).keyup(function(event) {
if (event.keyCode == 13 && $(':input').is(':focus')) {
//do stuff here
}
});
.is(':focus')总是返回false。
有谁知道这里的问题是什么?
谢谢!
答案 0 :(得分:1)
为什么不直接将keyup事件分配给输入字段?
$('.inputfield').keyup(function(event) {
if (event.keyCode == 13) {
// Enter key pressed ... do stuff here
}
});
答案 1 :(得分:0)
最好将处理程序绑定到文本框本身
$('.inputfield').on('keydown', function (event) {
if (event.keyCode == 13) {
//do stuff here
}
});
如果你有jQuery ui,你可以使用
$.ui.keycode.ENTER
如果您愿意
答案 2 :(得分:0)
.is(':focus')
适用于jquery 1.6 +。
或者您可以尝试在jquery对象中包装'old'javascript activeElement属性并将其嵌入onlaod js回调函数中:
window.onload = function(){
$(document).keyup(function(event) {
if (event.keyCode == 13 && $(document.activeElement).is('.inputfield')) {
//do stuff here
}
});
};