获取具有委派事件的父元素?

时间:2014-01-15 18:12:39

标签: ajax jquery

在通过ajax添加列表项后,我将点击事件重新附加到列表项的第三个标记(删除)后,尝试获取父元素的id。结构如下:

<ul id="list">
    <li id="list_23">
         <a href="javascript:;">Title</a>
         <a href="javascript:;">Edit</a> | <a href="javascript:;">Delete</a>
     </li>
 <ul>

javascript是:

$('#list li').on("click", 'a:nth-child(2)', function(event) {
    event.preventDefault();
    id = $(this).parent().parent().attr('id');
    console.log( id );
});

我试图获取列表项id(“list_23”),当第三个链接被点击时,在通过ajax添加元素之后。

1 个答案:

答案 0 :(得分:1)

这不是用.on()编写委托事件的正确方法。请尝试以下方法:

$('#list').on('click', 'li a:nth-child(3)', function(event) {
  event.preventDefault();
  id = $(this).parent().attr('id');
  console.log( id );
});

请参阅jQuery的.on()文档的具体this部分。

编辑:根据动态添加到DOM的元素li项更新了我的答案。

编辑2:问题是:nth-child(n)选择器不是基于索引的,而是基于索引编制的。添加了工作JSFiddle。

JSFiddle: http://jsfiddle.net/wyze/vTkYf/