Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery,尝试在x秒后删除隐藏的div?_Jquery_Hide_Settimeout - Fatal编程技术网

jQuery,尝试在x秒后删除隐藏的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

嘿,这里,我试图有一个div“隐藏”,然后“删除”一旦隐藏动画完成。看来我两个都能工作,但不是两个都能。我尝试过使用setTimeout,但这只会导致div被隐藏,但实际上并没有被删除

代码如下:

$(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-打得好。当我写它的时候,我只关注范围,而不是实际的选择器。我对它进行了更新,使其更有效率。