如何将jQuery事件添加到所有当前和未来的元素?

时间:2012-08-26 20:13:03

标签: jquery binding jquery-selectors delegates

我刚刚注意到jQuery中已经弃用了live()。我有一个简单的问题(只是为了确保哪种方法最有效,最快和最新)。我已经myfunction()了,我希望bind()使用attr("title") == 'x'jQuery("???").bind("mouseup", myfunction); jQuery("???").bind("keyup", myfunction); 添加到所有当前和未来的元素。

这是我应该使用的:

jQuery("???").delegate("???", "mouseup", myfunction);
jQuery("???").delegate("???", "keyup", myfunction);

或者这个:

jQuery("???").on("mouseup", "???", myfunction);
jQuery("???").on("keyup", "???", myfunction);

或者这个:

{{1}}

我在指定正确的选择器时遇到问题 - 因为其中一些选项允许将事件附加到一个事物(如正文或文档),并且它们允许第二个选择器。

2 个答案:

答案 0 :(得分:11)

使用.on()代替attribute equals selector

$(document).on('mouseup', '[title="x"]', myfunction);

答案 1 :(得分:6)

替换.live()的语法是这样的:

$('#parent').on('keyup mouseup', '.children', myfunction);