当我点击关闭按钮时,我有以下应该删除元素“.mycontainer”。但它并没有删除元素。当我使用萤火虫。我可以看到它只是在代码的开头将它移动到html标记之外。
$('.closeButton').click( function() {
$(".mycontainer").slideUp( function() {
$(".closeButton").parent().appendTo(".ContentsHolder");
$(this).remove();
});
});
如果我注释掉第3行//$(".closeButton").parent().appendTo(".ContentsHolder");
但这会删除内容,因此我无法再次访问它。
编辑:
我的html看起来像这样,如果它有助于理解我在做什么......
<div class='ContentsHolder'>
</div>
<div class='mycontainer'>
<div class='myContent'>
<a class='closebutton'>close</a>
... other content ...
</div>
</div>
我还设法通过延迟删除我的容器$(this).delay(500).remove();
我不认为这是一个很好的解决方案。
答案 0 :(得分:2)
您可以在slideUp之后链接remove函数,如下所示:
$('.closeButton').click( function() {
$(".mycontainer").slideUp( function() {
$(".closeButton").parent().appendTo(".ContentsHolder");
}).remove();
});
答案 1 :(得分:1)
看起来$(this)
与您的想法不同。
尝试添加console.log($(this));
以查看控制台中的实际上下文。
$('.closeButton').click( function() {
$(".mycontainer").slideUp( function() {
$(".closeButton").parent().appendTo(".ContentsHolder");
console.log($(this));
$(this).remove();
});
});
答案 2 :(得分:1)
我之前解决了同样的问题:
$(".mycontainer").slideUp(500, function() {
$(this).remove();
});