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个函数。函数 的 执行 顺序 问题的主要内容,如果未能解决你的问题,请参考以下文章

js执行顺序+同步异步

javascript--函数的声明及调用/JS中代码执行顺序

JS执行顺序-函数声明提升匿名函数函数表达式

js执行顺序

js 怎么让方法执行有先后顺序

js函数执行顺序,怎麼让一个函数执行完再执行下面的程序