0

问题:当文档准备好时,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.
}
4

1 回答 1

1

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

在 Chrome 的检查器或 Firebug 脚本面板中,在准备好的条目上放置一个断点,并跟踪页面加载的流程。您将很容易看到导致语句执行两次的原因。(5分钟练习)。

你可以放心,ready 不会触发多次。

于 2012-07-16T17:25:46.083 回答