JS回调函数(callback)

news/2024/7/7 18:35:15

在使用Jquery的时候,用到Callback(),回调函数的概念。并且不少。javascript

好比:html

$.ajax({
    url:"test.json",
    type: "GET",
    data: {username:$("#username").val()},
    dataType: "json",
    beforSend:function(){ 
         // 禁用按钮防止重复提交
        $("#submit").attr({ disabled: "disabled" });
    }, 
    complete:function(msg){ 
        //请求完成后调用的回调函数(请求成功或失败时均调用)
    } , 
    error:function(msg){ 
        //请求失败时被调用的函数 
    } , 
    Sucess:function(msg){ 
        //请求成功后调用的回调函数 
    } 
});

回调函数你们都会用,只是Jquery封装了以后,不能让你们明白回调函数的真正使用。

JS Api 里这样解释:A callback is a function that is passed as an argument to another function and is executed after its parent function has completed.

固然咱们能够在JS当中来真正尝试一下回调函数的神奇。

若是你直接在函数a里调用的话,那么这个回调函数就被限制死了。可是使用函数作参数就有下面的好处:当你a(b)的时候函数b就成了回调函数,而你还能够a(c)这个时候,函数c就成了回调函数。若是你写成了function a(){...;b();}就失去了变量的灵活性。下面是代码:

<html> 

<head> 

<title>回调函数(callback)</title> 

<script language="javascript" type="text/javascript"> 

<script type="text/javascript" src="jquery-1.4.2.min.js"></script>

function a(callback) {    

    alert("我是parent函数a!"); 

    alert("调用回调函数"); 

    //callback(); 

    $("#id").load("page参数");

    d();

    alert(callback);

function b(){ 

alert("我是回调函数b"); 

$("#id").load("page参数");

e();

function c(){ 

alert("我是回调函数c"); 

$.ajax({

...

});

d();

function test() { 

    a(b); 

    a(c); 

$(document).ready(function(){

function d(){

alert("我是Jquery定义的函数");

}

var e = function(){

alert("我也是Jquery定义的函数")

}

}

</script> 

</head> 

<body> 

<h1>学习js回调函数</h1> 

<button onClick=test()>click me</button> 

<p>应该能看到调用了两个回调函数</p> 

</body> 

</html> 

估计你们也看到了,我在a(callback),b(),c()方法里都写了Jquery的ajax函数,注意,这里是ajax的函数。是有区别的,我分别调用了内置函数,和本身定义的函数。 区别就在这里,由于Jquery和JS用的callback是同样的,互通的,因此在这里,Jquery的内置函数会被调用了。

可是本身定义的函数是不会被识别的,甚至会报没有这个function.

(后面这段看得不是很理解,但愿看到的高手请分析下)

因此在回调的时候注意这点。


http://lihuaxi.xjx100.cn/news/1207759.html

相关文章

包扫描工具实现(详解)

文章目录 前言包扫描实现思路&#xff08;需求分析&#xff09;&#xff1a; 具体实现完整代码 前言 注解在 Java 是一个非常重要的存在&#xff0c;而且它出现的非常频繁。 在一个工程下可能有许多的包或者Jar包&#xff0c;为了结合注解可以准确的定位到一个需要的类上&…

【期末复习之路】JAVA(三)B

接着上节&#xff0c;我们讲完了分支结构&#xff0c;我们的B部分准备讲循环结构&#xff0c;下文的重点请大家细细品味 文章目录 一 循环语句 二 for循环 三 while循环 四 do-while循环 五 对比三种循环结构 六 嵌套循环(或多重循环) 七 break和continue的使用 八 Sca…

MyBatis--2(基于MyBatis的增删改查)

一、准备 准备数据库表emp创建一个新的springboot工程&#xff0c;选择引入对应的起步依赖(mybatis、mysql驱动、lombok)application.properties中引入数据库连接信息:数据库连接四要素创建对应的实体类Emp(实体类属性采用驼峰命名–不留下划线)准备Mapper接口EmpMapper 二、…

2023年第十五届四川赛区ACM真题及官方题解

给大家看真题前&#xff0c;先给大家看看现场氛围 入场前&#xff1a; 结束后&#xff1a; 还是有点壮观的。 今年四川的ACM在都江堰举办。因为比赛时间很紧张&#xff0c;所以没来得及去公费旅个游哈哈&#xff0c; 不过题目很棒&#xff0c;志愿者效率很高&#xff0c;比赛…

PHP入门

第一章&#xff1a;入门 1.1 环境搭建1.2 变量和数据类型1.3 控制流程 第二章&#xff1a;函数 2.1 函数的定义和调用2.2 函数的参数和返回值2.3 匿名函数和闭包 第三章&#xff1a;数组 3.1 数组的基本操作3.2 多维数组3.3 数组函数和排序 第四章&#xff1a;文件操作 …

爬取中文新闻+正向、逆向最大匹配算法分词+算法优化+P、R、F值评估(完整详细过程+Python源码)

如标题所示&#xff0c;本文旨在记录这次分词实验&#xff0c;将主要从以下四点展开&#xff1a; 1、新闻文本的获取&#xff08;完整爬虫过程&#xff09; 爬取新闻网站中多个板块的新闻&#xff0c;这里建议可以多爬一些板块&#xff0c;保证新闻内容主题丰富&#xff0c;分…

CSS:BFC(Block Formatting Context 块级格式化上下文)

一、背景 想要了解BFC的规则&#xff0c;必须是熟悉前端网页的多种布局手段&#xff0c;例如盒的显示模式display&#xff0c;三种布局手段标准流(normal)、浮动流(float)、定位流(position)等。只有熟练掌握了这些布局方法之后&#xff0c;才能很好的理解BFC。 序号名称理解…

SpringBoot如何优雅的实现异步调用?

Spring Boot 提供了多种方式来实现异步任务&#xff0c;这里介绍三种主要实现方式。 Spring Boot 提供了多种方式来实现异步任务&#xff0c;这里介绍三种实现方式。 1、基于注解 Async Async 注解是 Spring 提供的一种轻量级异步方法实现方式&#xff0c;它可以标记在方法上…