jQuery keydown的问题

时间:2010-09-21 18:15:57

标签: jquery html css

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

我也附加了HTML结构,

如果我在div上任意位置点击“滚动窗格”,代码将焦点设置为输入字段,但如果我点击屏幕上的任何其他位置,例如,div id上方的代码“滚动-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>

4 个答案:

答案 0 :(得分:1)

关闭标记(</center>),或将“outerBody”类放在div上,或者:

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

答案 1 :(得分:0)

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

在jQuery对象上调用focus会触发与focus关联的事件。你需要将焦点调用到dom元素上。

答案 2 :(得分:0)

将焦点事件绑定到文档上。

答案 3 :(得分:0)

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

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

这可能会奏效,或者帮助你搞清楚。

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