JS回调函数(callback)

在使用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.

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ok060

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值