【问题标题】:Initialize content of a jQuery remote tab on initial page load在初始页面加载时初始化 jQuery 远程选项卡的内容
【发布时间】:2010-11-17 20:52:17
【问题描述】:

我正在使用 jQuery 选项卡库来创建一组远程(即加载 ajax)选项卡。

但是,为了避免在 ajax 请求完成之前初始页面加载为空,我想在初始页面下载中包含初始选项卡的内容。

我通常通过在初始页面加载中提供一个与选项卡标题匹配的 div 来实现这一点,但即使此内容立即出现,一旦我初始化选项卡,它就会执行 ajax 请求 IN ADDITION既浪费又导致闪烁。我的基本问题是如何让 jQuery 选项卡不对最初选择的选项卡执行 ajax 请求,并将此内容作为初始页面加载的一部分,同时仍动态加载其他选项卡。

复杂之处在于我无法硬编码哪个选项卡是“初始”选项卡的 ids/hrefs,因为初始选项卡会根据可用内容而改变。

我确信在初始化选项卡之前,有某种 hacky 方法可以通过 javascript 动态重写选项卡的 URL,但我正在寻找更简洁的解决方案。

有什么想法吗?

【问题讨论】:

  • 由于远程内容没有内置到 jquery 选项卡中,我认为如果不看到您现在的位置,我们将无法提供帮助。

标签: jquery-ui jquery-ui-tabs


【解决方案1】:

您是否使用特定的选项卡控件来执行此操作?这很大程度上取决于您的标签是如何实现的......

如果您希望在不延迟加载的情况下包含数据,则必须将其包含在服务器端。

给我更多细节,我会看看我能做什么!

【讨论】:

    【解决方案2】:

    最好的方法是使用服务器端实现来添加起始文本。在JQuery documentation默认文本中它是不通过AJAX加载的。

    我不确定您到底在做什么,但如果不是您的情况,那么可以像这样使用简单的布尔“hack”:

    var initial=true;
    

    然后,在您的标签代码中:

    $('.selector').tabs({
       select: function(event, ui) { if(initial) { initial=false; return false; }
    });
    

    这将阻止第一次执行 ajax 调用。

    【讨论】:

      【解决方案3】:

      有一个名为“微调器”的选项,其中包含文本、gif 动画或要显示的任何内容。

      $( ".selector" ).tabs( { spinner: 'Retrieving data...' } );
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-03-06
        • 2023-03-04
        • 2018-10-15
        • 1970-01-01
        相关资源
        最近更新 更多