将ui-widget附加到动态元素

时间:2011-03-25 20:18:09

标签: jquery-ui

使用.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天。

克里斯

2 个答案:

答案 0 :(得分:0)

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

我猜你要做什么:

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

答案 1 :(得分:0)

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

相关问题