jq源码提供的方法有很多回调函数,这里随便举个例子
$(this).animate({ top: "200px", width: "200px" }, 3000, function () { $(this).css("border", "5px solid blue"); })
其中animate的第3个参数就是回调函数 我想知道jquery源码他内部是怎么实现的或者说他的思路
扩展到其他的回调函数 他怎么就保证在其他的参数执行成功后触发!这里需要看源码我列举关键的。
jq源码8325行
animate: function( prop, speed, easing, callback ) { var optall = jQuery.speed( speed, easing, callback ); if ( jQuery.isEmptyObject( prop ) ) { return this.each( optall.complete, [ false ] ); }xxxxxx
这里的callback 他是怎么在其他的参数执行完成后才触发。
这里只需要大侠们说下他的实现思路就可以了 或者列举他的关键代码。谢谢
$.fn.xxx=function(opt,fn){
var defaults={},
option=$.extent(defaults,opt);
//重点来了
if (typeof fn== 'function'){
fn("123");
}
}
用法:
$("选择器").xx({},function(data){
alert(data);//会弹出一个123
});
谢谢 你这个确实是一个办法 也同样谢谢下面的朋友!
function todu(a,fn){ alert(a); if(arguments.length>1) fn(); } 其实自己的函数也可以这么用 这东西的真正好处在于函数解耦。。 通过回调大大降低了代码的耦合程度