Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript IE9中的文本输入焦点异常_Javascript_Jquery_Html_Internet Explorer 9 - Fatal编程技术网

Javascript IE9中的文本输入焦点异常

Javascript IE9中的文本输入焦点异常,javascript,jquery,html,internet-explorer-9,Javascript,Jquery,Html,Internet Explorer 9,我正在尝试这个相当简单的代码。当第一个输入上有mouseup时,应该将焦点转移到相邻的文本输入: <!DOCTYPE html> <html> <head> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"> </script> <script> $(document).ready

我正在尝试这个相当简单的代码。当第一个输入上有
mouseup
时,应该将焦点转移到相邻的文本输入:

<!DOCTYPE html>
<html>  
  <head>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js">   
    </script>
    <script>
      $(document).ready(function() {
        $(".foo").mouseup(function() {
          $(".boo").focus();
        });
      });   
    </script>
  </head> 
  <body>
    <input type='text' class='foo' />
    <input type='text' class='boo' />
  </body>    
</html>

$(文档).ready(函数(){
$(“.foo”).mouseup(函数(){
$(“.boo”).focus();
});
});   
除了
IE9
(我不敢在
IE8
或以下版本中测试它!)之外,在所有浏览器中,它对左键和右键都可以正常工作(对于右键
mouseup
,即使焦点转移到第二个输入,第一个输入时上下文菜单仍然会弹出)。然而,在IE9中,焦点仍然是第一个文本输入(上下文菜单也会弹出)


有没有办法解决这个问题,以便将焦点转移到第二个问题?

您能试试这些备选方案中的一个吗?他们过去在IE8中为我工作过,他们可能会为你工作

备选方案1:模糊然后聚焦

$(".foo").mouseup(function(){
    $(".boo").blur();  
    $(".boo").focus();
});
备选方案2:使用setTimeout

$(".foo").mouseup(function(){ 
    setTimeout(function () {
        $(".boo").focus();
    }, 100);  
});
ie中的.select()应该可以工作:

还通过返回false来处理上下文菜单。
希望有帮助

你能试着在纯JS中这样做,看看它是否有效吗?所以document.getElementById(element.focus();让我试试。给我两分钟……不。它不起作用,正如预期的那样:(好吧,它起作用了。有没有类似于
contextmenu
事件的jQuery?非常感谢,伙计!你救了我一天!伙计,另一个问题,IE8也支持它?快速模拟一个非jQuery版本,并在ie7,8标准模式下运行(F12)工作正常,所以应该可以,你应该检查一下,你能告诉我jQuery版本是否也可以工作吗?我没有IE8用于测试..:(
$(document).ready(function(){
  $('.foo').mouseup(function() {
    $('.boo').focus();
  });
  $('.foo').contextmenu(function() {
      $('.boo').select();
      return false;
  });
});