jQuery:使用 .on() 而不是 .live() 将事件处理程序附加到 $ ('selector' ) 对象

标签 jquery jquery-on jquery-1.9

我知道 .live() 已从 jQuery 1.9 中删除,应该使用 .on() 代替。到目前为止,如果选择器是字符串,.on() 对我来说效果很好。例如,

$("a.offsite").live("click", function(){ alert("Goodbye!"); });

变成了

$(document).on("click", "a.offsite", function(){ alert("Goodbye!"); });

但是如何将 .on() 用于 JQuery 选择器对象(或对象集合),如下所示?

var jele = $('.nav').find("a.offsite");
$(jele).live("click", function(){ alert("Goodbye!"); });

变成了

var jele = $('.nav').find("a.offsite");
$(document).on("click", jele, function(){ alert("Goodbye!"); });

上面的代码转换正确吗?我遇到的问题是绑定(bind)到同一事件的其他事件处理程序,但当事件触发时也会执行不同的选择器。因此我怀疑这不是正确的方法,但我在官方文档中找不到任何类似的示例。

我知道我可以将选择器字符串而不是 jele 对象传递到 .on() 方法中,但在某些情况下我根本无法访问选择器字符串,例如。当 jele 对象作为参数传递到发生绑定(bind)的函数时。

最佳答案

$(jele).on("click", function(){ alert("Goodbye!"); });

关于jQuery:使用 .on() 而不是 .live() 将事件处理程序附加到 $ ('selector' ) 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16687213/

相关文章:

javascript - jQuery,动态 |访问动态目标

jquery - 为什么我的 .on ('change' )不工作?

jquery 过滤器 : get the first match only?

jquery - jsrender/jsviews : how to loop a selected object list?

javascript - 如何更改一个输入 Onchange 选择框的某些属性

javascript - 如何使用此 jquery 代码传递文件值

javascript - jQuery 获取第一个 PHP 结果

jquery - 如何找到文档中最高的 z-index,无论它们是什么标签?

javascript - 如何在 ASP.NET MVC 中创建一个简单的 Bootstrap 模式对话框

jquery - 如何进行同步JSONP跨域调用