0

私はjquery hotkeysプラグインを使用しており、キーダウンプレスを次のようにJQuery UIタブにバインドしています:

$(document).bind('keydown', '2', function (evt){ 
    $("#TabsID").tabs("option", "active", 1); 
    return false; 
});`

問題は、タブをクリックしてからキーダウンを使用して別のタブを選択すると、前のタブがまだ次のui-state-focusようにスタイル設定されていることです。

<li class="ui-state-default ui-corner-top ui-state-focus" role="tab" 
    tabindex="-1" aria-controls="foo" aria-labelledby="ui-id-5" 
    aria-selected="false">
    <a href="#foo" class="ui-tabs-anchor" role="presentation" tabindex="-1" 
        id="ui-id-5">
        Foo text
    </a>
</li>

他の場所をクリックするまで、このままです。jQuery UI 1.10.3、jQuery 2.0.1、および jQuery Hotkeys 0.8 を使用しています。

今のところそれを解決するために行ったことは、これをすべてのキーダウンバインドの中に入れることです

$("#foo").find("li.ui-state-focus").removeClass('ui-state-focus');

しかし、より良い解決策があるかどうか疑問に思っています。

4

1 に答える 1

0

いくつかのテストの後、クラスを削除することが最善の方法であると思います。この単純なタスクのためにコードをさらに記述する必要はありません。これは完全に機能するはずです。

$(document).bind('keydown', '2', function (evt){

  $("#tabs").find("li.ui-state-active").removeClass('ui-state-active');
  $( "#tabs" ).tabs( "option", "active", 2 );
  return false;
});
于 2013-10-17T01:40:40.293 に答える