指定元素上的jQuery .on()事件

时间:2015-03-04 20:44:41

标签: jquery dynamic

我有以下javascript代码

$(document).on('click', $('#contact-list li'), function (e) {

列表是动态创建的,我需要在我的函数中点击列表项(li)来获取他/她的属性所以首先我尝试了

$(e.target)

但这是在li里面点击的确切元素。父母的父母的父母

$(e.target).parent()...;

最终会把我带到李,但我似乎无法找到更好的方法。如果有明显的答案,请提前抱歉。

3 个答案:

答案 0 :(得分:1)

使用.closest('li')获取相关的<li>

http://api.jquery.com/closest


不要将jQuery对象传递给.on(),而只传递给选择器:

$(document).on('click', '#contact-list li', callback);

如果绑定事件时存在ID为contact-list的元素,则可以使用:

$('#contact-list').on('click', 'li', callback);

http://api.jquery.com/on/#direct-and-delegated-events

答案 1 :(得分:0)

$(e.target).closest('li')会返回该项目,如果它是li,或者是与查询匹配的最近的父项。

答案 2 :(得分:0)

如果在LI元素上发生了单击,这是您尝试对jQuery语句执行的操作,那么$(this)引用将允许您访问该对象。每个人建议的.closest()是不必要的。

$(document).on('click', '#contact-list li', function (e) {
    console.log($(this));
}

告诉我:http://jsfiddle.net/sytac5zg/