在初始页面加载时初始化jQuery远程选项卡的内容

时间:2009-08-08 00:27:52

标签: jquery-ui jquery-ui-tabs

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

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

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

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

我确信在我初始化标签之前,javascript会动态重写标签的网址,但是我正在寻找更清晰的解决方案。

有什么想法吗?

3 个答案:

答案 0 :(得分:0)

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

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

再给我一些细节,我会看到我能做些什么!

答案 1 :(得分:0)

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

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

var initial=true;

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

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

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

答案 2 :(得分:0)

有一个名为“spinner”的选项,它包含文本,gif动画或任何要显示的内容。

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