Jquery 与x27的组合;一个';和';直播';提交?

Jquery 与x27的组合;一个';和';直播';提交?,jquery,Jquery,我知道: $('form').one('submit', function (evt) { ... }); 我知道: $('form').one('submit', function (evt) { ... }); 它是否存在两者的结合 谢谢。您可以将事件委派到DOM树的更高层: $('some祖先')。一个('submit','form',function(evt){…}); 注意,这仅在jQuery1.7+中可用。它的形式与方法上的相同。这是因为DOM事件往往会在树上冒泡。如果将事件处

我知道:

$('form').one('submit', function (evt) { ... });
我知道:

$('form').one('submit', function (evt) { ... });
它是否存在两者的结合


谢谢。

您可以将事件委派到DOM树的更高层:

$('some祖先')。一个('submit','form',function(evt){…});

注意,这仅在jQuery1.7+中可用。它的形式与方法上的
相同。这是因为DOM事件往往会在树上冒泡。如果将事件处理程序绑定到一个祖先元素,它最终将到达它。第二个参数是选择器。当事件到达祖先时,将对照选择器检查目标。如果匹配,则执行处理程序。

FYI,
.live()
已弃用。改为使用
.on()
。如果您使用的是较旧版本的jQuery,那么只需使用
.unbind
内部
.live
.delegate
处理程序,该处理程序与
相同。one
答案不错,似乎不是每个人都意识到one()函数是用on()升级的当然,我想说的是一个更常见的(如果不是唯一的话)委托的用例,它的工作原理和普通的一样,但是是委托的。这将在提交祖先下的任何表单时立即删除侦听器,而不是每个表单一个。@Esailija-您是对的,它将删除表单元素的任何提交上的处理程序,但这似乎是OP的问题?@adeneo显然是因为它被接受了(或者他测试得不够好)。类似于
live
one
的组合不是这样做的(页面中所有当前和将来的表单都有一个一次性提交事件),即使已适应
文档
选择器。但不管怎样。@Esailija-one
的OPs示例的行为都是一样的(一个表单将提交,处理程序将解除绑定)。我想那是他们想要的。