js 顺序 调用 2个函数。函数 的 执行 顺序 问题
<buttononclick="a();">submit</button>functiona(){b();c();}functionb(){alert("b");}fun...
<button onclick="a();">submit</button>
function a() {
b();
c();
}
function b() {
alert("b");
}
function c() {
alert("c");
}
类似这样的函数和调用顺序,为什么我点button的时候是先执行的c后执行的b呢?
忘了说了,b和c中可能会有很多内容,submit时候是应该先进入的b,但是最后的结果是先出现了c的alert,后出现b的alert。
对了,b中调用ajax了,是不是这个问题。
谢谢大家了。。。我这里是不能把c放在b中执行的,因为有其他地方的调用,如果放进去会导致死循环,我用的方法是在点击submit按钮前就将b执行完毕,submit时只执行c。 展开
function a() {
b();
c();
}
function b() {
alert("b");
}
function c() {
alert("c");
}
类似这样的函数和调用顺序,为什么我点button的时候是先执行的c后执行的b呢?
忘了说了,b和c中可能会有很多内容,submit时候是应该先进入的b,但是最后的结果是先出现了c的alert,后出现b的alert。
对了,b中调用ajax了,是不是这个问题。
谢谢大家了。。。我这里是不能把c放在b中执行的,因为有其他地方的调用,如果放进去会导致死循环,我用的方法是在点击submit按钮前就将b执行完毕,submit时只执行c。 展开
5个回答
展开全部
今天忽然看到几年前的问题。 为了给后面的新人一些帮助。把问题的解决方法说一下。
存在ajax的情况时,函数顺序是会出现这个问题的,因为大家都知道ajax是异步处理的,他请求发出后不会等结果回来,而是直接向下执行后面的代码。
如果需要通过ajax的返回结果 再进行后面的流程,那么需要把ajax的异步请求关闭。这样它就可以顺序进行了。如JQuery关闭异步的方法如下:
function load_val(){
var result;
$.ajax({
dataType:'json',
url : 'test.php',
async:false, //这里选择异步为false,那么这个程序执行到这里的时候会暂停,等待数据加载完成后才继续执行
success : function(data){
result = data;
}
});
return result;
}
展开全部
function b() {
alert("b");
c();
}
function c() {
alert("c");
}
b();
这样试下.
alert("b");
c();
}
function c() {
alert("c");
}
b();
这样试下.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
</head>
<body>
<button onclick="a();">submit</button>
<script type="text/javascript">
function a() {
b();
c();
}
function b() {
alert("b");
}
function c() {
alert("c");
}
</script>
</body>
</html>
试了一下,是先执行b 再执行C
没问题
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
</head>
<body>
<button onclick="a();">submit</button>
<script type="text/javascript">
function a() {
b();
c();
}
function b() {
alert("b");
}
function c() {
alert("c");
}
</script>
</body>
</html>
试了一下,是先执行b 再执行C
没问题
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你这不是扯蛋嘛、。不可能。
肯定还有其他的代码影响了。要不就是你故意找茬
肯定还有其他的代码影响了。要不就是你故意找茬
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有木有代码
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询