我正在写这个jQuery代码:
$('form').after('<p id="suc"></p>');
$('#suc').html('success !');
$('#suc').show(700);
setTimeout(function(){$('#suc').hide('slow')},2500);
$('#suc').remove();
当我像这样删除
$('#suc').remove();
时:$('form').after('<p id="suc"></p>');
$('#suc').html('success !');
$('#suc').show(700);
setTimeout(function(){$('#suc').hide('slow')},2500);
该代码运行成功,但是当我放它时,它没有运行!
那是什么问题呢?
但是在这里
$('#suc').remove();
是非法的? 最佳答案
setTimeout
调用在代码继续之前不会等待回调运行,因此您将立即删除该元素。当回调中的代码尝试隐藏该元素时,它不存在。
删除complete
method的hide
回调中的元素:
setTimeout(function(){
$('#suc').hide('slow', function(){
$('#suc').remove();
});
},2500);