Javascript Can';t将焦点转移到RHEL5中Firefox中的另一个文本输入

Javascript Can';t将焦点转移到RHEL5中Firefox中的另一个文本输入,javascript,jquery,html,focus,Javascript,Jquery,Html,Focus,我正在尝试以下简单代码: <!DOCTYPE html> <html> <head> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"> </script> <script> $(document).ready(function(){ $(".foo").bind("contextmenu",function(){

我正在尝试以下简单代码:

<!DOCTYPE html>
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js">
</script>
<script>
$(document).ready(function(){
  $(".foo").bind("contextmenu",function(){
     $(".boo").focus();      
  });
});
</script>
</head>
<body>
<input type = 'text' class = 'foo' /><input type = 'text' class = 'boo' />
</body>
</html>
它仍然不起作用。但是,如果我将最后一个代码更改为
if(e.which==1)
,则焦点会转移到单击上,而不是右键单击。这个问题发生在Firefox的
RHEL5
和Mac中的Firefox、Chrome中。不过,它在Mac上的Safari和Opera中运行良好


如何解决此问题?

首先将您的输入类更改为IDs,此处更合适

<input type="text" id="foo" /><input type="text" id="boo" />
编辑:在OP的原始代码中使用超时所涉及的工作解决方案:

setTimeout(function(){$(".boo").focus()}, 0)

它也可以与上面使用超时的代码一起工作。

这很奇怪,我在Ubuntu的Firefox上也可以使用它。即使是旧的浏览器也应该支持这一点。是的,这很奇怪。我正试图通过检测鼠标右键按下和鼠标右键向上来四处走动。然后它就可以正常工作了。:)更新,它在Mac中对Chrome也不起作用。对于Opera for Mac,很抱歉,它可以正常工作。您是否可以添加控制台日志以找出哪些不起作用:是onfocus事件未被触发,还是focus调用未执行任何操作。似乎找不到如何记录,以及记录什么。
contextmenu
事件似乎没有问题,因为处理程序的属性类似于
alert(“Foo”),它会发出警报。只有当处理程序涉及转移焦点时,它才不起作用。这也是,只有在Mac和Linux中的Firefox和Chrome。。。
document.getElementById("foo").onfocus = function(){
  document.getElementById("boo").focus();
}
setTimeout(function(){$(".boo").focus()}, 0)