0

こんにちは、この単純な送信メッセージに delay() または setTimeOut を追加しようとしましたが、これがどのように機能するのかよくわかっていないと思います。関数を「ラップ」してきましたが、多くの構文エラーが発生するたびに、それらを「修正」すると、遅延(8000)を設定しても実際には遅延は反映されませんが、すべてのアクションが次々に実行されます

これはメッセージを送信するためのスクリプトです

 $.ajax({
      type: "POST",
      url: "sendtofriend.php",
      data: dataString,
      success: function() {
        $('#message').css("display", "none");
        $('#messagein').css("display", "block");
        $('#messagein').html("<div id='messageinin'></div>");
        $('#messageinin').html("<h2><%= t('generales.thankks') %></h2>")
        .append("<p><%= t('generales.msgsent') %>.</p>")

        .fadeIn(1500, function() {
          $('#messagein').append("<img id='checkmark' src='images/check.png' />");
        });

        $('#message').fadeIn(1500, function() {
          $('#messagein').css("display", "none");
         $('#message').css("display", "block");
        });

      }
     });
    return false;
  });


});

私はたくさんのものを試しました、例えばこのようなもの

  $.ajax({
          type: "POST",
          url: "sendtofriend.php",
          data: dataString,
          success: function() {
            $('#message').css("display", "none");
            $('#messagein').css("display", "block");
            $('#messagein').html("<div id='messageinin'></div>");
            $('#messageinin').html("<h2><%= t('generales.thankks') %></h2>")
            .append("<p><%= t('generales.msgsent') %>.</p>")
            .delay(8000)
            .fadeIn(1500, function() {
              $('#messagein').append("<img id='checkmark' src='images/check.png' />");
            });

            $('#message').fadeIn(1500, function() {
              $('#messagein').css("display", "none");
             $('#message').css("display", "block");
            });

          }
         });
        return false;
      });


    });

私の目標は#message、確認 div '#messagein' が表示されたときに消えてから、確認を消し、フォームを再表示して別のメッセージを送信することです。

これはHTMLです

<div id='messagein'></div>
<div id='message'>

<form action="" method="post" id="sendfriendd">


<div id="inpumail" >

   <!-- <input type="text" name="" id="youremailaddress" size="40" value="<%= t('generales.tucorreoo') %>" class="text-input"  />  -->

     <input type="text" name="youremailaddress" id="youremailaddress" size="40" value="<%= t('generales.tucorreoo') %>" class="text-input" onblur="if(this.value == '') { this.style.color='#ccc'; this.value='<%= t('generales.tucorreoo') %>'}" onfocus="if (this.value == '<%= t('generales.tucorreoo') %>') {this.style.color='#000'; this.style.fontStyle='normal'; this.value=''}" style="color: rgb(120, 120, 120); font-style: normal;"/>  
    <label class="error" for="youremailaddress" id="youremailaddress_error">This field is required.</label>  

</div>


<br>
<div id="inpumail2" >


    <input type="text" name="friendsemailaddress" id="friendsemailaddress" size="40" value="<%= t('generales.amigcorreoo') %>" class="text-input" onblur="if(this.value == '') { this.style.color='#ccc'; this.value='<%= t('generales.amigcorreoo') %>'}" onfocus="if (this.value == '<%= t('generales.amigcorreoo') %>') {this.style.color='#000'; this.style.fontStyle='normal'; this.value=''}" style="color: rgb(120, 120, 120); font-style: normal;"/>  
    <label class="error" for="friendsemailaddress" id="friendsemailaddress_error">This field is required.</label>

</div>


<br>
<input type="submit" name="Submit" value=" <%= t('generales.enviarcorreoo') %> " class="enterrenvi">
</form>
4

1 に答える 1

1

この関数delayは、jquery アニメーションにのみ影響するため、この例 (追加後) では機能しません。setTimeout は、適切に使用された場合にジョブを実行する必要があります。

遅延を削除して変更してみてください:

$('#message').fadeIn(1500, function() {
    $('#messagein').css("display", "none");
    $('#message').css("display", "block");
});

の中へ:

setTimeout(function() {
    $('#message').fadeIn(1000);
    $('#messagein').fadeOut(1000); //animate display none
},5000); //timeout 5 secs
于 2013-09-24T07:30:09.633 に答える