使用.ajax()函数动态创建div时。我无法将.tabs()小部件附加到新创建的。
此链接创建新div并从“somefile.php”
中提取#tabs div<a href="newdiv">Creates New Div</a>
这是动态创建的div:
<div id="newdiv">
<div id="tabs">
<ul>
<li>Example One</li>
<li>Example Two</li>
</ul>
</div>
</div>
这是我正在使用的脚本。输出 - 错误:(d ||“”)。split不是函数 复制代码
$( "#tabs" ).live(function(){
$(this).tabs()
});
我可以在添加事件参数时显示标签,但是我希望标签在没有事件的情况下显示。 复制代码
$( "#tabs" ).live("click", function(){
$(this).tabs()
});
有人请帮助我理解我所缺少的东西。我已经坚持了3天。
克里斯
答案 0 :(得分:0)
您是否尝试在AJAX回调完成之前分配实时处理程序?
我怀疑你需要将你的代码移动到你的AJAX对象的成功处理程序中,而不是使用live
因为我不认为它符合你的想法。
如果您发布更多代码,我们将能够为您提供更多帮助。
我猜你要做什么:
$.ajax({
type: "GET",
url: "/tabs/",
async: true,
success: function() {
$('#tabs').tabs()
}
});
答案 1 :(得分:0)
RSG是正确的,因为您错误地使用了live
功能。 live
函数专门用于将事件处理程序附加到元素和调用函数。正如RSG指出的那样,在你的情况下,最好的办法就是在ajax请求的成功函数中调用tabs
小部件。