2011-03-25 91 views
1

使用.ajax()函数动态创建div时。我无法将.tabs()小部件附加到新创建的。将ui-widget附加到动态元素

此链接创建新的div和 “somefile.php”

<a href="newdiv">Creates New Div</a> 

这里是动态创建的div拉#tabs格:

<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天。

Chris

回答

0

您是否试图在AJAX回调完成之前分配活动处理程序?
我的怀疑是你需要将你的代码移动到你的AJAX对象的成功处理程序中,而不是使用live,因为我不认为它符合你的想法。
如果您发布了更多代码,我们将能够帮助您解决更多问题。

我为你想要做什么的猜测:

$.ajax({ 
    type: "GET", 
    url: "/tabs/", 
    async: true, 
    success: function() { 
    $('#tabs').tabs() 
    } 
}); 
0

RSG是在正确的您正在使用的live函数不正确。 live函数专门用于将事件处理程序附加到元素和调用函数。正如RSG指出的,在你的情况下,最好的办法是在ajax请求的成功函数中调用tabs小部件。