2014-01-12 104 views
0

我有這個對話框來顯示單擊圖標時的文件名。當我第一次點擊它時,對話框將是空的,然後關閉它並重新打開對話框將顯示名稱(通過ajax)。然後當我再次關閉對話框並點擊不同的文件圖標時,它顯示第一個文件名。那麼當我再次關閉並重新打開它時,它會顯示正確的文件名。它爲什麼這樣做?對話框顯示相同的結果

這裏是我的javascript

$('.edit').click(function(e){ 

    e.preventDefault(); 
    var auth = $(this).attr('id'); 

    $.ajax({ 
     type: 'POST', 
     url: 'ajax/edit_filename.php', 
     data: {auth:auth}, 
     success: function(result){ 
      filename = result; 
     } 
    }); 

    $("#dialog").dialog({ 
     modal: true, 
     resizable: false, 
     title: 'Edit file name', 
     buttons: { 
      "Close": function() { 
       $(this).dialog("destroy"); 
       $(this).dialog("cancel"); 
      } 
     } 
    }); 

    $('.ui-dialog-content').html('<input type="text" value="'+filename+'"/>'); 
}); 

回答

0

我計算出我做錯了什麼,我打電話對話之前,我得到了Ajax響應

這裏是正確的JavaScript櫃面您遇到這種情況

$('.edit').click(function(e){ 

     e.preventDefault(); 
     var auth = $(this).attr('id'); 

     $.ajax({ 
      type: 'POST', 
      url: 'ajax/edit_filename.php', 
      data: {auth:auth}, 
      cache: false, 
      success: function(result){ 
       filename = result; 
      } 
     }); 
     $.post("ajax/edit_filename.php", { auth:auth }) 
      .done(function(data) { 

      $("#dialog").dialog({ 
       modal: true, 
       resizable: false, 
       title: 'Edit file name', 
       buttons: { 
        "Close": function() { 
         $(this).dialog("destroy"); 
         $(this).dialog("cancel"); 
        } 
       } 
      }); 
      $('.ui-dialog-content').html('<input type="text" value="'+data+'"/>'); 
     }); 
    });