我试图填充全局变量selectedDates
想到了第一个功能,但它失败时我试图得到一些价值,例如,selectedDates['1/23/2013']
用$ .ajax代替$ .get后,我可以获得像selectedDates['1/23/2013']
这样的值。
如果它们两者都填充外部变量the_selected_dates
并返回到设置selectedDates
,那么差异在哪里?
var selectedDates = {};
功能使用$.get
失败:
function getSelectedDates_fails(lead_id, month) {
var the_selected_dates = {};
$.get(
window.location.href,
{
gf_lm_ajax : 1,
get : 'lead_reminder_get_dates',
lead_id : lead_id,
month : month,
nonce_gf_lm_ajax : gf_lmJsVars.nonce_gf_lm_ajax
},
function(output) {
$.each(output.reminders, function(n, val) {
the_selected_dates[val.date] = val.date;
});
}, 'json');
return the_selected_dates;
}
selectedDates = getSelectedDates_fails(35, 12); console.debug(selectedDates);
调试数据
功能使用$.ajax
作品:
function getSelectedDates_works(lead_id, month) {
var the_selected_dates = {};
$.ajax(
{
url : window.location.href,
dataType : 'json',
data : {
gf_lm_ajax : 1,
get : 'lead_reminder_get_dates',
lead_id : lead_id,
month : month,
nonce_gf_lm_ajax : gf_lmJsVars.nonce_gf_lm_ajax
},
async : false,
success : function(output)
{
$.each(output.reminders, function(n, val) {
the_selected_dates[val.date] = val.date;
});
}
});
return the_selected_dates;
}
selectedDates = getSelectedDates_works(35, 12); console.debug(selectedDates);
调试数据
是的,我使用的是对象'{}'来模拟它。 –
默认情况下,Ajax是异步的,您的$ .get不会在函数返回空的'the_selected_dates'对象之前完成。 –