3

私はこのかなり単純なコードを試しています。最初のテキスト入力があるときはいつでも、フォーカスを隣接するテキスト入力にシフトすることになっています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>

(私はあえてそれ以下IE9でテストしませんでした!)を除くすべてのブラウザで、左ボタンと右ボタンの両方で正常に動作します(右ボタンの場合、フォーカスがに移動しても、コンテキストメニューは最初の入力でポップアップします2つ目)。ただし、では、フォーカスは最初のテキスト入力にとどまります(コンテキストメニューもそこにポップアップ表示されます)。IE8mouseupIE9

フォーカスが2番目にシフトするように修正する方法はありますか?

4

2 に答える 2

3

これらの選択肢の1つを試すことができますか?彼らは過去にIE8で私のために働いたことがあり、あなたのために働くかもしれません。

代替案1:ぼかしてから焦点を合わせる

$(".foo").mouseup(function(){
    $(".boo").blur();  
    $(".boo").focus();
});

代替案2:setTimeoutを使用する

$(".foo").mouseup(function(){ 
    setTimeout(function () {
        $(".boo").focus();
    }, 100);  
});
于 2013-02-24T22:35:27.697 に答える
3

ieの.select()は機能するはずです:

http://jsfiddle.net/n4hGC/5/

$(document).ready(function(){
  $('.foo').mouseup(function() {
    $('.boo').focus();
  });
  $('.foo').contextmenu(function() {
      $('.boo').select();
      return false;
  });
});

falseを返すことでコンテキストメニューも処理しました。お役に立てば幸いです。

于 2013-02-24T22:39:00.760 に答える