【问题标题】:How to know when a key press event is triggered on certain element如何知道某个元素何时触发了按键事件
【发布时间】:2016-04-27 16:00:08
【问题描述】:

全部:

我对 jQuery 很陌生。我关于按键事件的问题是:

第 1 部分区域 第 2 部分区域 第 3 部分区域

与点击事件不同,很难判断该按键事件发生在哪个元素上,所以我想知道当我在 body/#d1/#d2/#d3 上指定 .keypress() 时如何区分?

我想要实现的一个用户案例是:

有两个输入文本框, [1]当都没有获得焦点时,如果用户按键触发,第一个文本框会自动获得焦点并接受输入,[2]如果我们点击第二个文本框手动关注它,那么只有它可以接受用户输入而不触发第一个获得焦点。

我用$(document).keypress(function(e){ $("input#firstinput").focus(); })实现[1]

目前的问题是关于[2]无论我在第二个输入文本框输入时,它总是会触发第一个文本框获得焦点,我想知道如何通过识别何时解决这个问题我的按键事件发生了吗?

谢谢

【问题讨论】:

标签: jquery dom keypress


【解决方案1】:

您可以先检查第二个输入是否未聚焦以将焦点设置在keypress 上的第一个输入上

$(document).keypress(function(e) {
  if (!$('.two').is(':focus')) $(".one").focus();
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" class="one">
<input type="text" class="two">

【讨论】:

    猜你喜欢
    • 2011-04-02
    • 2013-10-03
    • 1970-01-01
    • 1970-01-01
    • 2016-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-03
    相关资源
    最近更新 更多