代码之家  ›  专栏  ›  技术社区  ›  markratledge

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

  •  1
  • markratledge  · 技术社区  · 16 年前

    下面的“谢谢”部分显示了php表单成功提交的时间:

    <?php if(isset($emailSent) && $emailSent == true) { ?>
    <div class="thanks"></div>
    

    表单提交后页面不重新加载;表单的php包含在页眉中,上面的php包含在 <body> ,提交表单时,会出现“谢谢”div。

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

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

    3 回复  |  直到 16 年前
        1
  •  4
  •   Nick Craver    16 年前

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

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

    这将等待5秒钟,然后淡出元素,就像它得到的一样简单:)如果它没有找到具有 $(".thanks") 然后没问题,它只是没有任何动画…这意味着你可以坚持在一个外部脚本没有任何问题。

        2
  •  1
  •   Elie    16 年前

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

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

    你就不能把div调到display:none? 然后使其在表单提交代码中可见。