0

問題:ドキュメントの準備ができると、jQueryは以下のタブ機能を起動します。次に、タブが終了した後、ドキュメント準備機能が再度起動されます。ドキュメントレディ機能を1回だけトリガーするための良いアプローチは何でしょうか?ありがとう!

$(document).ready(function() {
  $("#index-tabs").tabs({
      cache: true
  }, {
      idPrefix: 'ui-tabs-index'
  });
});

私のタブ:

<ul id="index-tablist">
    <li id="index-config-tab" class="frstTab"><a href="ajax/config.html" >Config</a></li>
    <li id="index-system-tab"><a href="ajax/system.html" >System</a></li>
    <li id="index-wizard-tab"><a href="ajax/wizard.html" >Wizard</a></li>
</ul>

更新:ロードする関数を指定するためにloadパラメーターを使用してみました。しかし、何らかの理由でtabs()が実行されると、インデックスが再ロードされ、tabs関数が2回実行されます。

$("#index-tabs").tabs({
        load:initScripts,
        cache: true
    }, {
        idPrefix: 'ui-tabs-index'
});
function initScripts(){
    alert('run this code once'); // This alerts twice for some reason.
}
4

1 に答える 1

1

準備完了イベントは複数回発生することはできないことを知っておく必要があります。何が起こっているのかというと、ready内のステートメントが2回実行されているということです(よく見てください。同じものではありません)。

ChromeのインスペクターまたはFirebugスクリプトパネルで、準備完了エントリにブレークポイントを設定し、ページロードのフローをトレースします。ステートメントが2回実行される原因を簡単に確認できます。(5分間の運動)。

レディが複数回起動することはありません。

于 2012-07-16T17:25:46.083 に答える