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