0

fnbtnEsc キーが押されたときにdiv にいくつかの変更を加える jQuery スクリプトの次のコードがあります。

$(document).keypress(function(e){
  if(e.keyCode==27) {
    if(window.discon==0)
    {
    window.discon = 1;
    $("#fnbtn").replaceWith("<div id=\"fnbtn\"><p id=\"fnbtnp\">The variable is one...<br>Blah blah...<\/p><\/div>");
        }
    else if(window.discon==1)
    { 
    window.discon=2;
    $.post(
      'do.php',
      {doit: 4, uid: window.uid},
      function(rcvd) { 
        $("#fnbtn").replaceWith("<div id=\"fnbtn\"><p id=\"fnbtnp\">The variable is two...<br>Blah blah...<\/p><\/div>");
        $("#disp").append("<p><span id=\"cmnt2\">"+rcvd+"</span></p>");
        });
    //alert("Alert something here");
    }
  }
 });

disp$.postリクエストから受け取ったデータが追加される別の divです。このdo.phpファイルには、いくつかの mysql クエリと次のステートメントが含まれています。

echo "This is the data returned from the do.php file";

これが私の問題です。このスクリプトをphpファイルに入れると、最初fnbtnに押すとdivが正常に変更されます。EscしかしEsc、もう一度押すと、divfnbtnは変更されません。これはリクエストと関係があると思います$.post()

しかし、alert()ステートメント (現在はコメントアウトされています) を含めると、すべてが正常に機能しOK、アラート ボックスのボタンを押す前に変更を確認できます。

この問題の原因は何ですか? andステートメントが実行される$.post()前にリクエストが完了することが原因ですか? を含めることでどのように違いが生じるのでしょうか。$("#fnbtn").replaceWith()$("#disp").append()alert()

あなたの助けに感謝します。前もって感謝します。:-)

4

1 に答える 1