代码之家  ›  专栏  ›  技术社区  ›  Hippyjim

向动态添加的内容添加jQueryui按钮

  •  11
  • Hippyjim  · 技术社区  · 16 年前

    我有一个项目列表,其中包含一些与之相关联的jQueryUI按钮。在一个操作(删除一个项目)之后,我想通过ajax重新加载列表。

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

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

    2 回复  |  直到 16 年前
        1
  •  12
  •   Nick Craver    16 年前

    通过ajax重新加载时,调用 .button() context

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

    这将运行 .button() 只有在回应中 (而不是其他已经在页面/DOM中的其他地方) class="button" .

    你不能真的用 .live() 或者类似的东西,这依赖于事件冒泡,实际上与添加/删除元素无关…当涉及到插件时,需要针对添加的新元素再次执行它们。或者,效率较低但更通用的方法是 .livequery() plugin ,用法如下:

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

    正如我所说的,它不是世界上最有效的东西,因为它实际上以各种方式监视DOM的变化。

        2
  •  0
  •   Gabor de Mooij    16 年前

    可以使用以下内容重新绑定事件处理程序:

    $("#mybutton").unbind().click(function(){ ..do..something... });