在此代码中,我遇到callback undefined
错误:
function getPacakage(callback){
var sendurl={address:'http://ip/bms/data.php?result=10&order=28'}
var temp_selpkg_group=[];
var temp=[];
$.ajax({
type:"GET",
url:"dummycall.php",
data:sendurl,
success:function(xml){
pkg_sel[0] = $(xml).find('test1').text();
pkg_sel[1] = $(xml).find('test2').text();
pkg_sel[2] = $(xml).find('test3').text();
$(xml).find('packageitem').each(function(){
temp_selpkg_group=[];
temp_selpkg_group[0]=$(this).find('group').text();
temp_selpkg_group[1]=$(this).find('Qty').text();
temp[cnt_pkgitem]=temp_selpkg_group;
cnt_pkgitem++;
});
callback.call(null,temp);
},//sucess ends
error: function(){
alert("An error occurred while processing XML file.");
} //error ends..
}); //ajax ends...
}
以下是我调用函数的方法:
$(document).ready(function (){
$(function() {
$( "#accordion" ).accordion();
});
getPacakage(function(temp){
sel_pkg_group=temp;
fillOptionList();
});
});//document ready ends..
如果我刷新页面( Ctrl + F5 )2到3次,则会显示数据。
答案 0 :(得分:0)
删除以下行 -
callback.call(null,temp);
答案 1 :(得分:0)
由于Ajax是asyc任务,我们需要先完成一个ajax任务,然后调用函数来使用在ajax中初始化的数组,所以只需在ajax中添加 async:false 。
$.ajax({
type:"GET",
url:"dummycall.php",
data:sendurl,
async: false,
success:function(xml){ ..............
这将停止异步,其他方法只会在一个完成时被调用,这对我有用可能对我的其他朋友有帮助,快乐编码