js 顺序 调用 2个函数。函数 的 执行 顺序 问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js 顺序 调用 2个函数。函数 的 执行 顺序 问题相关的知识,希望对你有一定的参考价值。
<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。
今天忽然看到几年前的问题。 为了给后面的新人一些帮助。把问题的解决方法说一下。
存在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;
参考技术A function b()
alert("b");
c();
function c()
alert("c");
b();
这样试下. 参考技术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
没问题 参考技术C 你这不是扯蛋嘛、。不可能。
肯定还有其他的代码影响了。要不就是你故意找茬 参考技术D 有木有代码
jquery 如何控制js加载顺序
默认是按顺序加载,JS很注重加载顺序,如果想设置加载顺序,可以用$(function()//内容
);
写在里面的内容是在所有纯文字(html代码)加载完执行的。
或者用js自带的window.onload=
写在这里面的是所有内容全部加载完执行,包括图片 参考技术A 先加载的放前面
以上是关于js 顺序 调用 2个函数。函数 的 执行 顺序 问题的主要内容,如果未能解决你的问题,请参考以下文章