0

こんにちは、テキストを下書きに保存する ajax リクエストを含むテキスト領域があります。フォームページに移動してテキストエリアにテキストを書き始めると、「下書きとして保存」というメッセージが初めて表示され、その後、設定したdivにメッセージが表示されません。完了後にこのメッセージを表示したい私のすべての ajax リクエスト。これが私のコードです。提案してください。

$(function() {
    autoSaveEntry()
});
function autoSaveEntry() {
  if($('#txtarea').val().length>0){
    $.ajax({
        url: "/account/drafts/"+$('#dreft_id').val(),
        dataType: "script",
        async: "true",
        type: "PUT",
        data: {
                body:$('#txtarea').val()
              },
        success: function() {

            $('#message').append('Saved as draft');

            setTimeout(function () {

                $('#message').fadeOut(function(){

                    $(this).remove();

                });

            }, 2000);

        }
    });
  }
  setTimeout(autoSaveEntry, 5000)

}
4

3 に答える 3

0
setTimeout(function(){autoSaveEntry()}, 5000);

または、これを次の場所に移動することをお勧めします。

$(function() { setTimeout(function(){autoSaveEntry()}, 5000); });

于 2013-04-29T09:47:32.373 に答える
0

これは、メッセージ div を DOM から削除したためです。div を追加しないでください。html に追加して、そのスタイルを display:none に設定してください。

HTML

<div style = 'display:none' id = 'message'></div>

交換:

 $('#message').fadeOut(function(){
          $(this).remove();
});

に:

$('#message').fadeOut();
于 2013-04-29T09:50:09.093 に答える
0

2 回目のスクリプトがこのメッセージを「下書きとして保存」する場所を取得しないように、メッセージ div を削除しています。

そのため、 $(this).remove(); を置き換えることにより、空白の #message div のみを実行します。$(this).html(''); によって

最終的なコードは以下のとおりです。それはあなたのために働くでしょう。

  $(function() {
      autoSaveEntry()
   });
  function autoSaveEntry() {
    if($('#txtarea').val().length>0){
      $.ajax({
          url: "/account/drafts/"+$('#dreft_id').val(),
        dataType: "script",
        async: "true",
        type: "PUT",
        data: {
                body:$('#txtarea').val()
              },
        success: function() {

            $('#message').append('Saved as draft');

            setTimeout(function () {

                $('#message').fadeOut(function(){

                    $(this).html('');

                });

            }, 2000);

        }
    });
  }
  setTimeout(autoSaveEntry, 5000)

}

楽しみ...!!

于 2013-04-29T09:53:34.447 に答える