2014-01-12 72 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+'"/>'); 
     }); 
    });