我有三个李:
<li id="234-sg-235"><div><a></a></li>
<li><div><a></a></li>
<li>
<div>
<a>Don't show again</a>
</div>
</li>
看起来是这样的:
当用户按下不再显示
时,我想在 3 秒后删除这些 li-s。
所以我只需要删除它们的代码。
我尝试了三件事:
1)
$(this).parent('div').parent('li').fadeOut(3000);
$(this).parent('div').parent('li').prev().fadeOut(3000);
$(this).parent('div').parent('li').prev().prev().fadeOut(3000);
2)
var notificationId = $(this).parent('div').parent('li').prev().prev().attr("id");
$(this).parent('div').parent('li').fadeOut(3000);
$("#" + notificationId).next().fadeOut(3000);
$("#" + notificationId).fadeOut(3000);
3)
$(this).parent('div').parent('li').fadeOut(3000, function () {
$(this).parent('div').parent('li').remove();
});
$(this).parent('div').parent('li').prev().fadeOut(3000, function () {
$(this).parent('div').parent('li').prev().remove();
});
$(this).parent('div').parent('li').prev().prev().fadeOut(3000, function () {
$(this).parent('div').parent('li').prev().prev().remove();
});
但结果是(第一个li被删除,其他的得到:display:none
):
<li style="display: none"><div><a></a></li>
<li style="display: none">
<div>
<a>Don't show again</a>
</div>
</li>
为什么这些li-s没有被删除?为什么只删除第一个li?
感谢任何帮助!
最佳答案
应该是
$('ul a').click(function(){
$(this).closest('li').prevAll(':lt(2)').addBack().fadeOut(3000, function () {
$(this).remove()
});
})
演示:Fiddle
关于jquery - fadeOut 不会删除元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18353099/