2011-02-08 83 views
0

我想顯示一個對話框,它使用ajax動態地從服務器獲取其內容。如果我用這個使用jQuery與Ajax

$('a.key').click(function(){ 
      var resp = 'grk'; 
      $dialog.html(resp); 
      $dialog.dialog('open'); 
      return false; 
     }); 

一切都很完美。當我點擊鏈接時,會顯示對話框。但是,如果我嘗試做我想要的就是調用ajax來填充對話框內容。它只是不起作用。我對jquery很新,請幫忙。

這是我用來調用ajax的代碼,它不起作用。

$('a.key').click(function(){ 
      var resp = 'grk'; 
      resp = $.ajax({ 
       type: "GET", 
       url: "/cms/getdata", 
       success: function(msg){ 
      }).responseText; 

      $dialog.html(resp); 
      $dialog.dialog('open'); 
      return false; 
     }); 

謝謝。

+0

在非工作代碼中,`.ajax`調用結尾的'.responseText`究竟是什麼?在進行太多調試之前,您還會首先查找一些括號 - 括號錯誤匹配。 – 2011-02-08 15:32:57

+0

我必須自己查看。它得到支持;你必須搜索它才能看到它在使用:http://api.jquery.com/jQuery.ajax/ – Mathachew 2011-02-08 15:34:03

回答

2

嘗試

$('a.key').click(function(){ 
     var resp = 'grk'; 
     resp = $.ajax({ 
      type: "GET", 
      url: "/cms/getdata", 
      dataType: "html", 
      success: function(msg){ 
      $dialog.html(msg); 
      $dialog.dialog('open'); 
      } 
      }).responseText; 


     return false; 
    }); 
0

發生了什麼事是$對話框行爲正在發生,而Ajax請求仍然發生。你想要做的是在返回響應之後封裝這些命令。

Doh!尤里打敗了我。

1

由於JavaScript的異步和非阻塞性質,您必須提供一個回調函數,一旦ajax響應到達,就會執行回調函數。您也可以使用jQuery.get快捷方式。

$('a.key').click(function() { 
    $.get("/cms/getdata", function(data) { 
     $dialog.html(data); 
     $dialog.dialog('open'); 
    }); 

    return false; 
});