从动态加载的元素到其父元素的jquery事件

时间:2011-12-22 15:19:16

标签: jquery

我使用.load()函数动态添加以下HTML:

<div class="todelete"><a href="#" class="delete"></a></div>

然后我想做这样的事情:

$("a.delete").live('click', function() {
    $("a.delete").parent("div").remove();
});

但没有;它似乎并不知道谁&#34;这个&#34;指的是。

我该如何解决这个问题?

提前非常感谢你。

任何帮助都会被贬低。

3 个答案:

答案 0 :(得分:1)

parent("div")将从当前元素返回DOM树中更高的所有div个元素的数组。请尝试使用closest(),这将只返回单个clsest div。

另外,在处理程序中使用$(this)仅定位要点击的元素,而不是所有.delete元素。

$("a.delete").live('click', function() {
    $(this).closest("div").remove();
});

答案 1 :(得分:1)

您应该像这样引用它:

$("a.delete").live('click', function() { 
$(this).closest("div").remove(); 
})

例如,请参阅: http://jsbin.com/urugow/edit#preview

更新:在jsbin中做了一个更好的例子

答案 2 :(得分:0)

如果将live()函数移动到嵌套在创建div.todelete的函数内,它应该可以工作。

根据我的经验,除非在创建div时创建函数,否则无法访问动态创建的div。