2011-02-08 42 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; 
});