jQuery淡出一个由php而不是Javascript显示的div?

jQuery淡出一个由php而不是Javascript显示的div?,php,jquery,form-submit,Php,Jquery,Form Submit,看起来这可能很容易,但从阅读其他SO答案来看,有很多方法可以让它发挥作用: 下面的感谢栏显示了成功提交php表单的时间: <?php if(isset($emailSent) && $emailSent == true) { ?> <div class="thanks"></div> 提交表单后,页面不会重新加载;表单的php包含在页面标题中,上面的php位于中,提交表单时,会出现感谢div 问题:如何在几秒钟后将div淡出或删除 Docum

看起来这可能很容易,但从阅读其他SO答案来看,有很多方法可以让它发挥作用:

下面的感谢栏显示了成功提交php表单的时间:

<?php if(isset($emailSent) && $emailSent == true) { ?>
<div class="thanks"></div>
提交表单后,页面不会重新加载;表单的php包含在页面标题中,上面的php位于中,提交表单时,会出现感谢div

问题:如何在几秒钟后将div淡出或删除

Document ready似乎无法工作,因为页面未重新加载。jQuery能否检测到div的出现,然后启动淡出计时器


如果可能的话,我希望继续使用php表单,而不是使用jQuery表单。

如果您提交的表单不是通过ajax提交的,那么您的页面将重新加载,在这种情况下,您可以执行以下操作:

$(function() {
  $(".thanks").delay(5000).fadeOut();
});

这将等待5秒钟,然后淡出元素,就像它得到的一样简单:如果它没有找到带有$的div。谢谢,那么没有问题,它将没有任何动画…这意味着您可以将其粘贴到外部脚本中,而不会出现任何问题。

如果您提交表单,而不是通过ajax,则您的页面正在重新加载,在这种情况下,您可以执行以下操作:

$(function() {
  $(".thanks").delay(5000).fadeOut();
});

这将等待5秒钟,然后淡出元素,就像它得到的一样简单:如果它没有找到带有$的div。谢谢,那么没有问题,它将没有任何动画…这意味着您可以将其粘贴到外部脚本中而不会出现任何问题。

因为页面已经加载,您可以在ajax响应中打印淡出脚本:

<?php if(isset($emailSent) && $emailSent == true) { ?>
<div class="thanks"></div>
<script type="text/javascript">
$(".thanks").delay(5000).fadeOut();
</script>
...

由于页面已经加载,您可以在ajax响应中打印淡出脚本:

<?php if(isset($emailSent) && $emailSent == true) { ?>
<div class="thanks"></div>
<script type="text/javascript">
$(".thanks").delay(5000).fadeOut();
</script>
...

您不能将div设置为display:none吗?然后将其显示在表单提交代码中。

您不能将div设置为display:none吗?然后将其显示在表单提交代码中。

延迟只是setTimeout的包装吗。。。嗯,jQuery是否要包装所有的原生JavaScriptP我想这样做看起来更像jQuery,而且更容易。@alex-不太像,虽然它很相似,但这会给特定队列增加延迟,当没有传递名称时,它就是动画队列。例如:.fadeIn.delay2000.fadeOut。。。如果需要,您还可以在任何其他队列中使用它作为延迟:那么该函数是否位于头中的$document.ready块中?我试过了,但运气不好。正文中还有其他标记吗?@songdogtech-在页面中包含jQuery后,此代码可以放入任何脚本块,$function{}相当于$document.readyfunction{}。目前发生了什么?你有没有一页我可以偶然找到的?那会让你很快发现问题。谢谢,我很困惑;通过Firebug看不到我需要看的东西。延迟只是setTimeout的包装。。。嗯,jQuery是否要包装所有的原生JavaScriptP我想这样做看起来更像jQuery,而且更容易。@alex-不太像,虽然它很相似,但这会给特定队列增加延迟,当没有传递名称时,它就是动画队列。例如:.fadeIn.delay2000.fadeOut。。。如果需要,您还可以在任何其他队列中使用它作为延迟:那么该函数是否位于头中的$document.ready块中?我试过了,但运气不好。正文中还有其他标记吗?@songdogtech-在页面中包含jQuery后,此代码可以放入任何脚本块,$function{}相当于$document.readyfunction{}。目前发生了什么?你有没有一页我可以偶然找到的?那会让你很快发现问题。谢谢,我很困惑;通过Firebug看不到我需要看的东西。