20

jQuery UI タブの使用 - UI タブと統合するプラグインを作成しました。プラグイン.tabs()が呼び出されていない場合に jQuery UI タブを開始するように設定しましたが、これは単純なクラス チェックを行うだけです。

 if(!$globalTabs.hasClass("ui-tabs")){
    $globalTabs.tabs();
 }

しかし、これには問題があります。FOUC を回避するために、開発者は UI クラスをタブに追加して、document.ready の前に初期レンダリングを改善することが多いためです。

「ui-widget1」などの別のクラスを確認できますが、別の/より良い方法があるかどうか疑問に思っていますか?

4

2 に答える 2

43

添付されたウィジェットをdata()でクエリできます。

if (!$globalTabs.data("tabs")) {
    $globalTabs.tabs();
}

この動作は、jQuery UI のDevelopment & Planning WikiのWidget factoryページに記載されています。

  • 経由でアクセス可能なプラグインインスタンス$( "#something" ).data( "pluginname" )

    • DOM 要素を含む jQuery オブジェクトへの参照は、インスタンス as のプロパティとして使用できるthis.elementため、オブジェクトと要素の間を簡単に行き来できます。

更新: jQuery UI 1.9 以降では、ウィジェット キーはウィジェットの完全修飾名になり、次のようにドットがダッシュに置き換えられます。

if (!$globalTabs.data("ui-tabs")) {
    $globalTabs.tabs();
}

修飾されていない名前の使用は 1.9 でもサポートされていますが、非推奨であり、1.10 ではサポートが廃止されます。

于 2012-09-12T18:27:27.203 に答える