我想显示一个对话框,它使用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;
});
谢谢你..
尝试
$('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;
});
由于 JavaScript 的异步和非阻塞性质,您必须提供一个回调,该回调在 ajax 响应到达后执行。您还可以使用 jQuery.get 快捷方式。
$('a.key').click(function() {
$.get("/cms/getdata", function(data) {
$dialog.html(data);
$dialog.dialog('open');
});
return false;
});
发生的情况是 $dialog 操作正在发生,而 ajax 请求仍在发生。你要做的是封装响应返回后的命令。
噢!尤里打败了我。