博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于$.Callbacks()传参问题
阅读量:6721 次
发布时间:2019-06-25

本文共 620 字,大约阅读时间需要 2 分钟。

无参方式

var cb = $.Callbacks(), // 定义Callbacks对象fn1 = function(){    alert('fn1');},fn2 = function(){    alert('fn2');};cb.add( a,b );cb.fire();

无参方式很容易处理,只要执行 addfire 方法即可。

有参方式

var cb = $.Callbacks(), // 定义Callbacks对象fn1 = function( param ){    alert(param);},fn2 = function(param){    alert(param);};cb.add( a,b );cb.fire('fn1','fn2');

这个时候你会发现,弹出了两次fn1,并不是自己期待的结果,感觉这里jq存在bug,测试中使用的是jq-2.1.4的版本。研究源码是发现,这个地方确实存在传参的问题,于是动手改造了一下。

第一处改造:源码:图片描述
改后的代码:图片描述
注意3099行代码的区别。

第二处改造:源码:图片描述

改造后的代码:图片描述

注意3207代码的区别。

这两行代码改造好之后就可以正常传参了。在执行 fire 方法时,可以接受 fire('fn1','fn2',....) 或者 fire(['fn1','fn2',....]);

只是做了简单的测试,如果有其他jq功能模块有异常,欢迎大家指出来,谢谢大家

转载地址:http://kjjmo.baihongyu.com/

你可能感兴趣的文章
如何给系统升级
查看>>
《Red Dog》——流浪、阳光和那些让人缅怀的画面
查看>>
jquey动画效果
查看>>
陶教授,我记不住定理的证明该怎么办?(我看到陶哲轩在博客上与学生一则有意思的互动,就翻译过来了)...
查看>>
计算 $s=1+(1+2)+(1+2+3)+\cdots+(1+2+3+\cdots+n)$
查看>>
《解析几何》吕林根,徐子道第四版 习题 1.4.7,1.4.8,1.4.9
查看>>
ruby Logger日志
查看>>
【应用】浮点数四则运算器 Part3:运算模块的编写
查看>>
puppet使用 apache passsenger 作为前端 (debian)
查看>>
IDA*
查看>>
双机调试和windbg的命令
查看>>
20155229《网络对抗技术》Exp8:Web基础
查看>>
MVC中用js写入的button按钮单击事件失效问题
查看>>
POJO与javabean的区别
查看>>
数据结构与算法设计--树的镜像
查看>>
Oracle常用的性能诊断语句
查看>>
Shell命令-文件及内容处理之more、less
查看>>
实验5 数独游戏界面设计
查看>>
sencha touch2中定义store格式
查看>>
自己实现简单的AOP(一)简介
查看>>