2012-07-16 78 views
0

問題:當文檔準備就緒時,jQuery將觸發下面的選項卡功能。然後在選項卡完成後,它會再次啓動文檔準備功能。只有一次觸發文檔就緒功能的好方法是什麼?謝謝!兩個docready()事件使用jQuery.tabs()觸發;

$(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> 

更新:我使用負載參數試圖指定一個函數來加載。但由於某些原因,當tabs()被執行時,它會重新加載索引並執行兩次製表符。

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

回答

1

您應該知道ready事件不能多次觸發。現在發生的情況是,你準備好的陳述正在執行兩次(仔細觀察,它們不是同一件事)。

在Chrome的檢查器或Firebug腳本面板中,在就緒條目上放置一個斷點,並在頁面加載上跟蹤流。您將很容易看到是什麼導致語句執行兩次。 (5分鐘練習)。

您可以放心,準備好不會多次啓動。

+0

感謝您的意見。我正在更新其他人javascript,並且很難找到導致整個頁面重新加載的原因。 – Fostah 2012-07-16 17:39:56

+0

原來,其中一個ajax選項卡上的iFrame指向了索引。啊!固定! – Fostah 2012-07-16 18:09:50