2

我制作了一个简单的 jQuery 按钮小部件(插件),它的初始化如下:

var cmd = $(".tButton");
cmd.tButton();

有没有办法将 .live 用于所有未来的按钮(通过 ajax 加载)?

谢谢

4

2 回答 2

0

你可以,但要小心你在做什么。如果您想自动重新运行您的插件连接代码,那么$.fn.live()这不是您想要的。

如果您要附加一些事件处理程序,那么您可以,但您需要将其附加到主集合,如下所示:

 $.fn.yourPlugin = function(){
     this.live('click', function(){...});
 }
于 2009-12-05T17:21:51.300 回答
0

这个问题的答案是否定的,尽管如果您所做的只是处理事件,dcneiner 的答案非常好。如果您想进行其他一些修改,那您就不走运了。

live 通过将事件处理程序附加到文档元素来工作。由于事件在 js 中冒泡(它们可以由 clicked/mouseover'd/etc 元素的父级处理),文档有机会处理来自页面上每个元素的事件。

不幸的是,据我所知,创建元素时没有事件,因此创建元素时您无法自动运行函数。jQuery 的 live 不知道新按钮的存在,直到它被单击/鼠标悬停/等。

于 2009-12-05T20:26:34.840 回答