添加jQueryui按钮以动态添加内容
我有一个项目列表,其中包含一些jQueryUI按钮。 在执行操作(删除项目)后,我想通过ajax重新加载列表。
唯一的问题是,当我这样做时,JQueryUI按钮不再显示,只是标准标记。
我知道我可以使用jQuery.live()
动态添加点击处理程序等,但是如何将jQueryUI button()
应用于它们呢?
当您通过ajax重新加载时,请在该上下文中调用.button()
(或您正在使用的任何变体),如下所示:
$.ajax({ //other options.. success: function(data) { //insert elements $(".button", data).button(); } });
这将仅使用class="button"
在响应中的元素上运行.button()
(而不是已在其他位置的页面/ DOM中的其他元素)。
你不能真正使用.live()
或类似的东西,它依赖于事件冒泡,而不是与添加/删除元素有关…当涉及到插件时,你需要再次针对新的执行它们你添加的元素。 或者,效率较低但更通用的方法是.livequery()
插件 ,如下所示:
$(".button").livequery(function() { $(this).button(); });
正如我所说,它不是世界上最有效的东西,因为它实际上以各种方式监视DOM的变化。
您可以使用以下命令重新绑定事件处理程序:
$("#mybutton").unbind().click(function(){ ..do..something... });