在使用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.
(后面这段看得不是很理解,但愿看到的高手请分析下)文章来源:https://www.toymoban.com/news/detail-487468.html
因此在回调的时候注意这点。文章来源地址https://www.toymoban.com/news/detail-487468.html
到了这里,关于JS回调函数(callback)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!