2011-03-05 28 views
0

What it should look likeJQuery的标签功能不通过JQuery模板

喜烧我使用jQuery标签http://jqueryui.com/demos/tabs/与搜索结果从我的每一行可能具有取决于搜索结果中的自己的选项卡服务器返回。如果用户点击排序选项,则搜索结果会发生变化,包括返回的每一行中的选项卡,其中可能包含或不包含选项卡。在上面的示例中,您可以看到有2条记录返回,顶部记录的标签名为其他视频。

我已经成功地能够从服务器检索结果集并且模板正确地建立,但是我无法获得.tabs()函数来触发?有没有人有任何使用标签的经验,并知道如何让我的标签()函数触发?

下面是我用动态加载模板返回后的JSON结果集代码:

 
$(".searchBox").fadeOut("fast", function() { 
    $(this).html("").fadeIn("fast", function() { 
     $("#searchTemplate").tmpl(json.Data.SearchResults.Results).appendTo(".searchBox").fadeIn("fast"); 
    }); 
}); 

这里是一个for循环,我用它来遍历结果的模板已经被加载后以创建功能尝试并获得.tabs()火新的HTML标签:

for(var i=0;i<json.Data.SearchResults.Results.length;i++)

{ 
    if (json.Data.SearchResults.Results[i].OtherVideos.length || json.Data.SearchResults.Results[i].VideoFriends.FriendCount > 0) 
    { 
     $(document).find("div[id='tabs"+json.Data.SearchResults.Results[i].Counter+"']").tabs(); 
     if ($(document).find("div[id='tabs"+json.Data.SearchResults.Results[i].Counter+"']").length > 0) 
      alert("it exists"); 
     else 
      alert("it dont"); 
    } 
} 

我只想说的警告框“存在”出现成功,因此是找到动态盟友创建的模板生成但是本身没有被声明初始化标签HTML标签:

$(document).find("div[id='tabs"+json.Data.SearchResults.Results[i].Counter+"']").tabs();

有谁知道为什么还是什么,我在这里失踪,让我.tabs的原因()函数以消防...

我已经检查了动态内容和双重检查使用萤火虫检查器的HTML代码,一切都是根据它应该如何的ID是正确的,#编号是在那里等,所以我的只有结论是.tabs()函数不会触发。这是对JQuery选项卡本身的限制吗?它能否执行这种“实时”加载功能?是否有一个回调函数作为加载模板本身的一部分?

下面是在调用服务器后正在返回什么没有标签的工作图片:

Tabs not working

回答

0

好吧,我解决了问题,我想我会更好地给我的那些答案你遭受类似问题的人。

我应该把我的for循环中相同的回调函数作为TMPL调用如:

 
$(".searchBox").fadeOut("fast", function() { 
    $(this).html("").fadeIn("fast", function() { 
     $("#searchTemplate").tmpl(json.Data.SearchResults.Results).appendTo(".searchBox").fadeIn("fast"); 

     // For loop should go here! 

    }); 
}); 

我有对这段代码后循环和标签()函数基本没有引用新创建的标签。