关于jquery方法执行顺序的疑惑。(或许跟同步异步有关?方法执行分同步和异步吗?)
代码:functionA(){varid=$("#aList:checked").val();$.ajax({url:'/controller/action',type:...
代码:
function A() {
var id= $("#aList:checked").val();
$.ajax({
url: '/controller/action',
type: "get",
data: {ID:id},
datatype: "html",
async: false,
success: function (data) {
if (data == "Error:1") {
alert("error!");
}
else {
var poi = getLongLatbyAddress($("#aList:checked").parent().text());
alert("3");
}
},
error: function () {
alert("error");
}
});
}
//根据地址获取经纬度
function getLongLatbyAddress(addr) {
var myGeo = new BMap.Geocoder();
var point= myGeo.getPoint(addr, function (p) {
alert("1");
if (p) {
return p;
}
}, "北京市");
alert("2");
return point;
}
按照我的理解,执行完毕网页上应该分别弹出内容为1,2,3的三个提示框。但是我运行该程序实际弹出的顺序是2,3,1。。。 于是我很迷茫。。 正常jquery在执行的时候不是按照顺序执行的吗。先执行方法内部的代码,然后再执行方法外面的。为什么这个程序没等方法内部执行完,没给出返回值就抢险执行该方法之后的语句了。。 求高手解答。谢谢。 展开
function A() {
var id= $("#aList:checked").val();
$.ajax({
url: '/controller/action',
type: "get",
data: {ID:id},
datatype: "html",
async: false,
success: function (data) {
if (data == "Error:1") {
alert("error!");
}
else {
var poi = getLongLatbyAddress($("#aList:checked").parent().text());
alert("3");
}
},
error: function () {
alert("error");
}
});
}
//根据地址获取经纬度
function getLongLatbyAddress(addr) {
var myGeo = new BMap.Geocoder();
var point= myGeo.getPoint(addr, function (p) {
alert("1");
if (p) {
return p;
}
}, "北京市");
alert("2");
return point;
}
按照我的理解,执行完毕网页上应该分别弹出内容为1,2,3的三个提示框。但是我运行该程序实际弹出的顺序是2,3,1。。。 于是我很迷茫。。 正常jquery在执行的时候不是按照顺序执行的吗。先执行方法内部的代码,然后再执行方法外面的。为什么这个程序没等方法内部执行完,没给出返回值就抢险执行该方法之后的语句了。。 求高手解答。谢谢。 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询