小编典典

将jQueryui按钮添加到动态添加的内容

ajax

我有一些与它们相关联的jQueryUI按钮的项目列表。完成一个动作(删除一个项目)后,我想通过ajax重新加载列表。

唯一的问题是,当我这样做时,JQueryUI按钮不再显示,仅显示标准标记。

我知道我可以jQuery.live()动态添加点击处理程序等,但是如何将jQueryUI button()应用于它们?


阅读 224

收藏
2020-07-26

共1个答案

小编典典

通过ajax重新加载时,请.button()在该上下文中调用(或使用的任何变体),如下所示:

$.ajax({
  //other options..
  success: function(data) {
    //insert elements
    $(".button", data).button();
  }
});

这将 仅在响应中的*.button()元素上运行(而不是其他已在页面/ DOM中的其他元素)。 *class="button"

您不能.live()在这里真正使用或依赖事件冒泡,或与添加/删除元素没有任何关系……当涉及到插件时,您需要针对添加的新元素再次执行它们。或者,效率较低但更通用的方法是.livequery()plugin,其用法如下:

$(".button").livequery(function() {
  $(this).button();
});

正如我所说,这并不是世界上最高效的事情,因为它实际上以各种方式监视DOM的变化。

2020-07-26