作为标题,我在代码中使用.done,但它不起作用。
get_widget_content('advanced_search').done(function(alert(1)));
function get_widget_content(widget) {
$.ajax({
type: "POST",
url: baseUrl + 'task/widget_content',
data: "task_id=" + taskId + "&project_id=" + proId + "&widget=" + widget + "&tp_id=" + tpId,
success: function(data) {
$('#' + widget).html(data);
}
});
return false;
}
当我跑的时候。浏览器说.done不起作用。
答案 0 :(得分:3)
看看你的函数返回的内容:
function get_widget_content(widget) {
// ...
return false;
}
然后您尝试在返回的值上调用.done()
:
get_widget_content('advanced_search').done(function(alert(1)));
false
是一个布尔值。它没有.done()
功能。
在AJAX呼叫上调用done()
:
function get_widget_content(widget) {
$.ajax({ /* ... */ }).done(function () { /* ... */ });
return false;
}
或返回AJAX调用,然后您可以在返回值上调用.done()
:
get_widget_content('advanced_search').done(function() { /* ... */ }));
function get_widget_content(widget) {
return $.ajax({ /* ... */ });
}
另外:请注意您如何调用它的拼写错误。你有这个:
function(alert(1))
这是一个语法错误。它应该是这样的:
function(){alert(1);}
答案 1 :(得分:0)
更改为
get_widget_content('advanced_search').done(function(){alert(1)});
function get_widget_content(widget){
$.ajax({
type: "POST",
url : baseUrl+'task/widget_content',
data: "task_id=" + taskId + "&project_id=" + proId + "&widget=" + widget + "&tp_id=" + tpId,
success: function(data){ $('#'+widget).html(data); }
});
return false;
}
答案 2 :(得分:0)
试试这个:
get_widget_content('advanced_search');
function get_widget_content(widget){
$.ajax({
type: "POST",
url : baseUrl+'task/widget_content',
data: "task_id=" + taskId + "&project_id=" + proId + "&widget=" + widget + "&tp_id=" + tpId,
success: function(data){ $('#'+widget).html(data); }
}).done(function(alert(1)));
return false;
}