【问题标题】:Issue with jQuery keydownjQuery keydown 问题
【发布时间】:2010-09-22 02:31:41
【问题描述】:

我遇到了这个简单的 jQuery 代码的问题。

我也附上了 HTML 结构,

如果我单击 id 为“scroll-pane”的 div 上的任意位置,代码会将焦点设置为输入字段,但如果我单击屏幕中的其他任何位置,例如,div id 上方的代码“scroll” -pane”,它不会带来焦点。我在这里做错了什么?

<script language="javascript">
$(function()
{
    $('.scroll-pane').jScrollPane();
    $('#outerBody').keydown(function() {
      $('#serialCode').focus();      
    });
});
</script>

<center id="outerbody">
<table id="tab1" class="Tab1" width="100%">
<tr>
    <td width="60"></td>
    <td width="113"><p align="center">C</td>
    <td width="105">&nbsp;</td>
</tr>
</table>

<table  id="tab2" class="Tab2" border="0" width="100%">
<tr>
    <td>&nbsp;</td>
    <td>A </td>
    <td>B </td>
    <td><input type="text" id="serialCode" class="serialCode" /></td>
</tr>
</table>

<div id="scroll-pane" class="scroll-pane">

</div>

【问题讨论】:

  • 尽量不要使用&lt;center&gt;标签之类的。

标签: jquery html css


【解决方案1】:

要么关闭标签(&lt;/center&gt;),要么将“outerBody”类放在一个div上,或者:

<script language="javascript">
$(function()
{
    $('.scroll-pane').jScrollPane();
    $('#tab1,#tab2,#scroll-pane').keydown(function() {
      $('#serialCode').focus();      
    });
});
</script>

【讨论】:

  • 试过这种方法, $('#tab1,#tab2,#scroll-pane').keydown(function() { 也没有用,焦点只会进入输入字段,如果我点击里面DIV
  • 您的问题是 keydown 不会触发上下文,除非您专注于可以专注于该上下文的元素,我确定您是否向其中一个表添加输入并且在上面按一个键,它会带你进入串口输入
【解决方案2】:

为什么不将 keydown 事件附加到整个文档窗口?

$(document).keydown(function() {
  $("#serialCode").focus();
});​

这可能有效,或帮助您解决问题。

查看:http://jsbin.com/iwuwa4
编辑:http://jsbin.com/iwuwa4/edit

【讨论】:

    【解决方案3】:

    试试$('#serialCode')[0].focus();

    在 jQuery 对象上调用 focus 会触发与 focus 关联的事件。您需要在 dom 元素上调用 focus。

    【讨论】:

    • 您好 Stefan,我没有收到您的回复。请您再解释一下。
    • 嗨 Stefan,刚刚尝试了您的解决方案,它对我不起作用。我的要求是,只要用户按下一个键,该键值应该显示在输入框中。
    【解决方案4】:

    在文档上绑定焦点事件。

    【讨论】:

    • 嗨,Praveen,像这样的吗? $.keydown(function() { $('#inputScanner').focus(); });
    • 不。他的意思是 $(document).keydown()。正如我在帖子中所展示的那样,您可能仍需要修改您的呼叫以聚焦。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-18
    • 2018-12-24
    • 2010-11-26
    • 1970-01-01
    • 1970-01-01
    • 2013-11-08
    相关资源
    最近更新 更多