两个docready()事件正在使用jQuery.tabs();进行激发;



问题:当文档准备好时,jQuery将启动下面的选项卡功能。然后,在选项卡完成后,它再次启动文档准备功能。只触发一次文档就绪功能的好方法是什么?谢谢

$(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函数。

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

您应该知道就绪事件不能多次激发。现在发生的情况是,ready中的语句被执行了两次(仔细看,它们不是同一回事)。

在Chrome的检查器或Firebug脚本面板中,在就绪条目上设置一个断点,并在页面加载时跟踪流。您将很容易看到是什么导致语句执行两次。(5分钟运动)。

您可以放心,ready不会多次开火。

最新更新