jquery live()和插件

时间:2011-10-25 15:05:05

标签: jquery jquery-plugins

我正在使用jquery插件,统一,以便在我的表单上我可以有漂亮的单选按钮和文件输入等。

然而,我遇到了一个问题,很多我的表格是通过ajax拉入来的,而且为了让插件工作,它需要知道这些元素存在于dom中。

是否可以使用带有ajax方法的插件?

目前我正在尝试,

$(".uniform input").live().uniform();

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

---负责回调-----

$('#upload').click(function(e) {
        $("#content #main").animate({"right": "-900px"}, 'slow', 'linear', function(){
            $(this).load('upload.html #main div', '', function(){
                $(".uploader input").uniform();
            });
        });
        $("#main").animate({"right": "0px"}, 'slow', 'swing');
        e.preventDefault();
    });

4 个答案:

答案 0 :(得分:1)

再次初始化制服 后,您已使用正常

添加到表单中
 $('#forms').append(new_selects_from_ajax);
 $("select").uniform();

答案 1 :(得分:1)

回应评论:

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

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

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

答案 2 :(得分:0)

您可以使用livequery plugin,如下所示:

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

答案 3 :(得分:0)

.live和.delegate之间的区别之一是可链接性。请查看http://brandonaaron.net/blog/2010/03/4/event-delegation-with-jquery以获得对此的好评。在您的情况下,您可能会使用委托。