我使用.load()
函数动态添加以下HTML:
<div class="todelete"><a href="#" class="delete"></a></div>
然后我想做这样的事情:
$("a.delete").live('click', function() {
$("a.delete").parent("div").remove();
});
但没有;它似乎并不知道谁&#34;这个&#34;指的是。
我该如何解决这个问题?
提前非常感谢你。
任何帮助都会被贬低。
答案 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。