jQuery,尝试在x秒后删除隐藏的div?
嘿,这里,我试图有一个div“隐藏”,然后“删除”一旦隐藏动画完成。看来我两个都能工作,但不是两个都能。我尝试过使用setTimeout,但这只会导致div被隐藏,但实际上并没有被删除 代码如下:jQuery,尝试在x秒后删除隐藏的div?,jquery,hide,settimeout,Jquery,Hide,Settimeout,嘿,这里,我试图有一个div“隐藏”,然后“删除”一旦隐藏动画完成。看来我两个都能工作,但不是两个都能。我尝试过使用setTimeout,但这只会导致div被隐藏,但实际上并没有被删除 代码如下: $(this).parents("div:eq(0)").hide("fast"); setTimeout(function () { $(this).parents("div:eq(0)").remove();}, 1000); 如果我在没有setTimeout的情况下执行remove,它将删除d
$(this).parents("div:eq(0)").hide("fast");
setTimeout(function () { $(this).parents("div:eq(0)").remove();}, 1000);
如果我在没有setTimeout的情况下执行remove,它将删除div,但不显示隐藏动画
感谢您的帮助 您是否尝试过类似的方法:
$(this).parents("div:eq(0)").hide("fast", function(){
var div = this;
setTimeout(function () { $(div).remove(); }, 1000);
});
这将在隐藏代码完成后运行settimeout代码
有关回调的更多信息:
--已修复此的作用域。hide接受您可以使用的完整回调。另外,最近的比你当前使用的父母第一更有效
var $div = $(this).closest('div');
$div.hide("fast", function(){
$div.remove();
});
要使用setTimeout,您需要
var $div = $(this).closest('div');
$div.hide("fast");
window.setTimeout(function () {
$div.remove();
}, 1000);
我认为这是一个范围问题。当
setTimeout()
函数运行时,函数内部的此
的上下文与声明它时的上下文不同
试试这个:
var self = $(this).parents("div:eq(0)");
self.hide("fast");
setTimeout(function () { self.remove();}, 1000);
大家好,谢谢你们的精彩(快速)回复!谢谢 我最终使用了几种似乎效果很好的方法的组合
$(this).closest("div").hide("fast", function() {
$(this).remove();
});
@约翰:谢谢!我对这一点还不太熟悉,总是忘了回叫的事(用手拍额头!)
@雷德斯库:谢谢你的效率提示!还在学习
@僵尸蝙蝠:是的,很好的捕获-我在上文中绕过了这一点,在回拨中删除了对双方的呼叫,因为当时我正在删除双方的家长。;)
@提姆:延迟(1000)看起来很有希望,我无法让它工作(?(是的,我用的是1.4);)
谢谢ppl!:) 为什么父母的腿要工作两次?请记住,这一点贯穿所有领域parents@redsquare-打得好。当我写它的时候,我只关注范围,而不是实际的选择器。我对它进行了更新,使其更有效率。