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示例的行为都是一样的(一个表单将提交,处理程序将解除绑定)。我想那是他们想要的。