以编程方式重新加载Ajax选项卡内容的问题?

时间:2011-08-11 10:29:22

标签: jquery javascript-events jquery-ui-tabs

如何在运行时动态设置jQuery的ajax选项卡的URL?

这样做

$(function() {
    //$("#tabs").tabs();
    $("#tabs").tabs("url" , 0, "dep.php" );
});

HTML

<div class="flts">
    <div id="tabs">
        <ul>
            <li><a href="dep.php">Вылеты</a></li>
            <li><a href="arr.php">Посадка</a></li>
        </ul>
    </div>
</div>

但它不起作用!!可能有什么问题????

2 个答案:

答案 0 :(得分:1)

您的方法似乎不正确。 $("#tabs").tabs("url" , 0, "dep.php")的调用包含在$(function() {中,因此它仅在第一次加载页面时运行。这是没有意义的。此方法用于稍后替换选项卡内容。

正确的方法是:

  • 该页面应仅包含带有效链接但没有标签内容的标签标签。

  • 首次加载页面时,请致电$("#tabs").tabs();以初始化并配置标签窗口小部件。

现在可以使用选项卡小部件,并在首次显示特定选项卡时加载选项卡内容(延迟加载)。

  • 如果您想稍后刷新或替换标签(例如,从事件处理程序中),请致电$("#tabs").tabs("url" , 0, "dep.php")

所以整体解决方案可能如下所示:

<div class="flts">
  <div id="tabs">
    <ul>
      <li><a href="dep.php">Вылеты</a></li>
      <li><a href="arr.php">Посадка</a></li>
      </ul>
    </div>
</div>

$(function() {
    // intial tabs configuration
    $("#tabs").tabs();
    // event handler setup for refresh

    $('#refreshButton').click(function() {
      $("#tabs").tabs("url", 0, "dep.php?var=val&var2=val");
    });
});

答案 1 :(得分:0)

看起来你正在尝试进行AJAX模式。如果是这种情况,那么您需要指定ajaxOptions。 This page有一个简单的例子可以让你直截了当。