jWait, a jquery plugin ,which provide a easy way to delay your work。
jQuery(zepto) 插件,把各种延迟串联起来,采用管道式写法 — 为了少写几个 setTimeout。
示例代码
原来
setTimeout(function (){ $('#b_1').addClass('active'); },1000);
现在
$('#b_1').jWait(1000).addClass('active');
setTimeout(function (){ $('#b_1').addClass('active'); setTimeout(function (){ $('#b_2').css({color:red}); },1000); },1000);
==> 现在
$('#b_1').jWait(1000) .addClass('active') .jWait(1000) .jWait('#b_2').css({color:red});
function doSth(){ //... } setTimeout(function (){ $('#b_1').addClass('active'); doSth(); setTimeout(function (){ doSth(); $('#b_2').css({color:red}); },1000); },1000);
function doSth(){ //... } $('#b_1').jWait(1000) .addClass('active') .jWait(doSth) .jWait(1000) .jWait(doSth) .jWait('#b_2').css({color:red});
简单图解
$('#b_1').jWait(1000) .addClass('active') //$('#b_1').addClass('active') .jWait(1000) .fadeIn() //$('#b_1').fadeIn() .jWait('#b_2')//修改代理的对象为 $('#b_2') .jWait(1000) .css({color:'red'})//$('#b_2').css({color:'red'}) .jWait(function (){ //这里获取当前代理对象 this ==> $('#b_2') console.log(this.css('color')); }) .jWait(console)//修改代理的对象为 console .log('hello') //console.log('hello') .error('error');//console.error('error');
参数
/** ** @param waitObj 绑定对象可以是 (数字,字符串,对象,方法) * 1.数字 表示延迟的时间(单位:毫秒) * 2.字符串 查询字符串querySelector,表示切换代理的对象为查询字符串代表的jquery对象 * 3.对象 代理的对象,表示切换代理的对象 * 4.方法 延迟后执行的函数,如果没有延迟,则直接执行 ** @param callback 回调方法,只有当waitObj是数字类型时有效 * @returns {jWaitProxy} 返回一个执行代理对象,一个神奇的对象 */ $.fn.jWait = function (waitObj, callback) { //.... }