JS
$(".deletable").live('click',function(){
$(this).parent().effect('explode', 500, function(){
$(this).parent().remove();
})
});
Run Code Online (Sandbox Code Playgroud)
HTML
<table>
<tr>
<td class='deletable'>hi</td>
</tr>
</table>
<ul>
<li>
<span class=deletable>hi</span>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
我想删除tr以防万一td被点击并点击li案例span.
由于某种原因,这不起作用,而是整个ul/ table被删除.
为什么这样 ?
由于某种原因,这不起作用,而是删除整个ul /表.
为什么这样 ?
在您当前的代码this中,click事件引用了单击的元素.
然后,您遍历元素的父级以调用effect它$(this).parent().effect....
在效果调用this中,现在引用parent(li/tr),但是您调用$(this).parent().remove();遍历父(ul/table)的父级,从而删除整个list/table.
将代码更改为仅$(this).remove();在效果调用中使用,因为它已经引用了所需的父元素(li/tr),如下所示:
$(".deletable").live('click',function(){
$(this).parent().effect('explode', 500, function(){
$(this).remove();
})
});
Run Code Online (Sandbox Code Playgroud)