jquery - fadeOut 不会删除元素

标签 jquery fadeout

我有三个李:

<li id="234-sg-235"><div><a></a></li>
<li><div><a></a></li>
<li>
    <div>
        <a>Don't show again</a>
    </div>
</li>

看起来是这样的: enter image description here

当用户按下不再显示时,我想在 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/

相关文章:

javascript - 显示特定内容onclick

jquery淡出显示:none

audio - 多重振幅衰减如何在 ecasound 上工作?

javascript - 将数据发布到 iframe(aspx) 以在 aspx 页面的页面加载中捕获它

javascript - 无法使用 Shopify Product Options by Bold 获取文本区域的值

javascript - jquery 窗口调整大小事件在初始加载时不起作用

jquery - 将单选按钮矩阵转换为数值或百分比

Android tablerow 的淡出动画

javascript - 没有框架的简单淡入淡出效果onclick

当快速悬停在图像上时,Javascript 淡入/淡出效果会卡住