3

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

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

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

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

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

有任何想法吗?

4

3 回答 3

0

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

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

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

于 2009-09-25T00:32:48.447 回答
0

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

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

var initial=true;

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

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

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

于 2009-11-25T01:45:00.870 回答
0

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

$( ".selector" ).tabs( { spinner: 'Retrieving data...' } );
于 2010-03-29T09:29:00.997 回答