jquery live() 和插件

发布于 2024-12-11 19:58:49 字数 655 浏览 1 评论 0原文

我正在使用 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();
    });

I am using the jquery plugin, uniform so that on my form I can have pretty radio buttons, and file inputs etc.

However I have hit a problem alot of my forms a pulled in via ajax, and obvioulsy for the plugin to work it needs to know that the elements exists in the dom.

Is there away to use plugins with ajax methods?

Currently I am trying,

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

which obviously does not work, any suggestions?

---IMPLENTED IN LOAD CALLBACK-----

$('#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();
    });

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

眼角的笑意。 2024-12-18 19:58:50

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

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

You could use the livequery plugin, like this:

$('.uniform input').livequery(function(){
   $(this).uniform();
});
2024-12-18 19:58:50

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

One of the differnces between .live and .delegate is chainability. Please review http://brandonaaron.net/blog/2010/03/4/event-delegation-with-jquery for a nice review on this. This looks likely that you would use delegate in your situation.

喜爱皱眉﹌ 2024-12-18 19:58:49

回应评论:

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

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

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

In response to comments:

.load is nothing more than a $.ajax call wrapped in another method. It too has a callback.

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

Edit: i just saw your edit. If that isn't working, make sure you are using the correct selector to get to the elements you want to apply the plugin to.

天生の放荡 2024-12-18 19:58:49

只需在表单中添加之后再次初始化统一,使用正常

 $('#forms').append(new_selects_from_ajax);
 $("select").uniform();

Just initialize uniform again after you've added in a form, using the normal

 $('#forms').append(new_selects_from_ajax);
 $("select").uniform();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文