jquerykeydown的问题
我面临这个简单jQuery代码的问题 我还附加了HTML结构 如果我单击id为“滚动窗格”的div上的任意位置,代码会将焦点设置为输入字段,但如果我单击屏幕中的任何其他位置,例如,div id“滚动窗格”上方的代码,则不会将焦点设置为输入字段。我做错了什么jquerykeydown的问题,jquery,html,css,Jquery,Html,Css,我面临这个简单jQuery代码的问题 我还附加了HTML结构 如果我单击id为“滚动窗格”的div上的任意位置,代码会将焦点设置为输入字段,但如果我单击屏幕中的任何其他位置,例如,div id“滚动窗格”上方的代码,则不会将焦点设置为输入字段。我做错了什么 <script language="javascript"> $(function() { $('.scroll-pane').jScrollPane(); $('#outerBody').keydown(func
<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"> </td>
</tr>
</table>
<table id="tab2" class="Tab2" border="0" width="100%">
<tr>
<td> </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>
$(函数()
{
$('.scroll pane').jScrollPane();
$('#outerBody').keydown(函数(){
$('#serialCode').focus();
});
});
C
A.
B
试试$('#serialCode')[0]代码>
在jQuery对象上调用focus
会触发与focus
相关的事件。您需要在dom元素上调用焦点。在文档上绑定焦点事件。关闭标记(
),或者将“outerBody”类放在div上,或者:
<script language="javascript">
$(function()
{
$('.scroll-pane').jScrollPane();
$('#tab1,#tab2,#scroll-pane').keydown(function() {
$('#serialCode').focus();
});
});
</script>
$(函数()
{
$('.scroll pane').jScrollPane();
$(“#选项卡1,#选项卡2,#滚动窗格”).keydown(函数(){
$('#serialCode').focus();
});
});
为什么不将按键事件附加到整个文档窗口
$(document).keydown(function() {
$("#serialCode").focus();
});
这可能会起作用,或者帮助你解决问题
视图:
编辑:试着不要使用
标签之类的东西。嗨,Stefan,我没有收到你的回复。你能再解释一下吗?嗨,Stefan,刚刚试过你的解决方案,对我不起作用。我的要求是,只要用户按下一个键,该键的值就应该显示在输入框中。keydown(函数(){$('#inputScanner').focus();});不。他的意思是$(document).keydown()。您可能仍然需要修改对focus的调用,如我在帖子中所示。尝试了这种方法,$(“#tab1,#tab2,#滚动窗格”)。按键(函数(){也不起作用,焦点只会指向输入字段,如果我在div中单击,则不会触发上下文的keydown问题,除非您关注的是可以将焦点指向该上下文的元素,我相信如果您向其中一个表中添加一个输入并按下一个键,它将带您进入串行代码输入