0

jquery を使用して、デフォルトのタブ ナビゲーションをオーバーライドしようとしています。タブキーを取得してテキスト入力から仮想化されたテキストボックス (コードミラー) に移動しようとしているため、単純に tabindex プロパティを使用することはできません。次のjavascript/jqueryを無駄に使用しようとしました:

$('#modelName').focus(function() { 
    $(this).keydown( function(event) {
        if(event.keyCode=='9') {
            codeMirror.focus();
        }
    });
});

これを機能させる方法について何か考えはありますか?

4

2 に答える 2

1
  $('#modelName').keydown( function(event) {
    if(event.keyCode == 9) {
        event.preventDefault();
        codeMirror.focus();
    }else{
        alert("Not the right key! " + event.keyCode);   
    }
  });

どこが間違っているかを確認できるように、問題をキャッチするのは良いことです。この場合、string vs intだと思います。

また、コードのやり方では、古いイベント ハンドラーを削除せずに、フォーカスを取得するkeydownたびに新しいイベント ハンドラーを適用します。#modelName後で問題を引き起こす可能性があります。

于 2012-05-24T05:11:44.003 に答える
0

これを試して

$('#modelName').keyup(function (e) {
    if(e.keyCode== 9){
    codeMirror.focus();
    }
});

keydown() の代わりに keyup() を使用する

于 2012-05-24T05:15:36.653 に答える