我正在使用jQuery标签库来创建一组远程(即ajax加载)标签。
但是,为了避免在ajax请求完成之前初始页面加载为空,我想在初始页面下载时包含初始选项卡的内容。
我通常通过在初始页面加载中提供与选项卡标题匹配的div来实现这一点,但即使这个内容立即显示,只要我初始化选项卡,它就会执行ajax请求。既浪费又会引起闪烁。我的基本问题是如何让jQuery选项卡不对最初选择的选项卡执行ajax请求,并将此内容作为初始页面加载的一部分,同时仍动态加载其他选项卡。
复杂的是我无法硬编码ids / hrefs哪个选项卡是“初始”选项卡,因为初始选项卡将根据可用内容进行更改。
我确信在我初始化标签之前,javascript会动态重写标签的网址,但是我正在寻找更清晰的解决方案。
有什么想法吗?
答案 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...' } );