【问题标题】:jQuery-UI tabs not refreshing dynamic contentjQuery-UI 选项卡不刷新动态内容
【发布时间】:2014-08-09 22:16:11
【问题描述】:

我正在使用 jQuery-UI 选项卡 - 总共五个。选项卡 1 有一个提交到 MySQL(通过 AJAX)的输入表单。选项卡 2 根据通过选项卡 1 输入的内容从 MySQL 中提取数据。当我从选项卡 1 单击到选项卡 2 时,我希望刷新第二个选项卡。由于与其他代码的一些冲突,我无法使用 jQuery-UI API 上宣传的外部文件。我正在使用以下内容:

这是我的 JS:

$(function() {
   $("#tabs3").tabs();
   $("#tabs3").on('click','li',function(event,ui) {
       $("#tabs3").tabs("load", "active");
   });            
});

这是我的 HTML:

<div id="tabs3">
<ul class="no-print">
    <li><a href="#tabs-1">Enter Report</a></li>
    <li><a href="#tabs-2">My Reports</a></li>
</ul>  
<div id="tabs-1">
<form name="form" id="form" method="post" action="scripts.php" novalidate>
    // form inputs
</form>
</div>
<div id="tabs-2">
<h4>My Reports</h4>
<?php

// PHP scripts that spits out the output
</div>

我该怎么做才能使当我从一个选项卡单击到下一个选项卡时,它会刷新内容?我不反对每个标签刷新,但如果不困难的话,我想选择哪些刷新,哪些不刷新。

【问题讨论】:

    标签: javascript jquery jquery-ui tabs


    【解决方案1】:

    如果您不使用源来加载标签页,您将需要手动刷新您需要刷新的任何内容,或者通过 ajax 检索标签页?

    但是,您想要接近那部分取决于您。但所有这些都可以在 jquery ui 选项卡回调“beforeActivate”中完成。然后在参数中您可以确定它是哪个选项卡并继续刷新该点的内容。

     $(function() {
         $( "#tabs" ).tabs({
            beforeActivate: function( event, ui ) {}
         });
    
    });
    

    参考:http://api.jqueryui.com/tabs/#event-beforeActivate

    还有一个简单的小提琴 http://jsfiddle.net/zjrag3x0/

    【讨论】:

    • 通过 AJAX 加载选项卡,它搞砸了我的 PHP 脚本中的一些依赖项和一些辅助 AJAX 调用。根据我的阅读,这是 jQuery UI 中选项卡功能的限制,但这不是我的专业领域。用外行的话来说,我只想对页面的选项卡部分进行浏览器刷新——选项卡 2 下的数据当前不是由 AJAX 调用创建的。似乎基于您所说的,我必须选择全部使用 AJAX 或进行远程处理。是这样吗?
    • 您在第二个选项卡中更新了什么?如果您需要更新表格(只是猜测它的报告内容),那么数据必须来自初始页面刷新时的某个地方?您能否隔离调用以获取数据,然后使用它来刷新选项卡 2 中的内容?
    • 您也不需要通过 ajax 加载选项卡。我真的在谈论只获取选项卡所需的数据。然后你可以用真正需要更新的jquery选择器替换必要的部分
    • 选项卡由嵌入在选项卡的 div 中的 PHP 脚本填充。 PITA 是我在 PHP 脚本中发生了一些不同的事情,除了一些 JS/jQuery 事情发生 - 它只是与我目前的路径不同的配置。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多