jquery live()和插件

jquery live()和插件,jquery,jquery-plugins,Jquery,Jquery Plugins,我正在使用jquery插件uniform,这样我的表单上就可以有漂亮的单选按钮和文件输入等等 然而,我遇到了一个问题,我的很多表单都是通过ajax拉入的,显然,要使插件工作,它需要知道dom中存在元素 有没有办法将插件与ajax方法结合使用 目前我正在努力, $(“.uniform输入”).live().uniform() 这显然不起作用,有什么建议吗 ---在加载回调中实现----- 只需在添加到表单中后,使用普通 $('#forms').append(new_selects_from_aj

我正在使用jquery插件uniform,这样我的表单上就可以有漂亮的单选按钮和文件输入等等

然而,我遇到了一个问题,我的很多表单都是通过ajax拉入的,显然,要使插件工作,它需要知道dom中存在元素

有没有办法将插件与ajax方法结合使用

目前我正在努力,

$(“.uniform输入”).live().uniform()

这显然不起作用,有什么建议吗

---在加载回调中实现-----


只需在添加到表单中后,使用普通

 $('#forms').append(new_selects_from_ajax);
 $("select").uniform();
您可以使用,如下所示:

$('.uniform input').livequery(function(){
   $(this).uniform();
});

针对评论:

.load
不过是用另一个方法包装的
$.ajax
调用。它也有一个回调

$(target).load("myurl.php",function(){
  $("select").uniform();
});

编辑:我刚看到你的编辑。如果这不起作用,请确保您使用了正确的选择器来获取要应用插件的元素。

与.live和.delegate之间的区别之一是可链接性。请回顾一下这篇文章。这看起来可能是在您的情况下使用委托。

您需要修改插件。我建议在ajax调用的成功方法中将插件附加到dom之前/之后应用到新表单。live()只能处理对用户交互做出反应的插件,如单击或焦点,它不能很好地处理在初始化时导致样式更改的插件。@KevinB那么使用ajax的回调?livequery已经使用
.live
完全集成到jQuery中,或者我认为是这样。不完全,livequery有一点是jQuery所没有的;检测添加到dom中的新元素。然而,据我所知,该功能不是很有效。所有
.live
.delegate
都是委托事件绑定。@mblase75:不符合文档要求。。。from:“描述:现在和将来,为与当前选择器匹配的所有元素的事件附加一个处理程序。”
$(target).load("myurl.php",function(){
  $("select").uniform();
});