$('#b').on('click', function() {
$('#in2').focus();
//setTimeout(function(){ $('#in2').focus(); },500);
});
$('#in2').on('keyup', function(event) {
console.log(event.which);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button id="b">focus</button>
<input type="text" id="in1" />
<input type="text" id="in2" />
我在按钮上绑定了一个向上键功能,在上面的示例中,我将焦点移到了文本字段
#in2
上。而且我还有一个绑定到文本字段
#in2
的按键事件。问题:当我使用按钮上的Enter键时,绑定到文本字段(
#in2
)的事件被调用。除了setTimeout之外,有人可以建议我一些解决方案吗?
最佳答案
如果我正确理解了您的问题,并且您不希望在按Enter键时调用#in2的键盘上的函数,则只需检查是否按了Enter键,否则就只执行它?
$('#in2').on('keyup', function(event) {
if(event.which != 13){
console.log(event.which);
}
});
或者,您可以使用onchange,以便在元素的内容更改时调用该函数(例如,这也适用于复制和粘贴)