25-解决方案
12.6.2 解决方案
利用秘诀12.4开始介绍的插件设计模式,在用于包装插件的匿名函数中可以正常定义私有函数。因为私有函数处于匿名函数内部,所以外部代码无法看到它。外部代码只能看到附加到jQuery对象中的函数或者方法。
;(function($) {
$.fn.pulse = function(options) {
//合并传入选项和默认选项
var opts = $.extend({}, $.fn.pulse.defaults, options);
return this.each(function() {
doPulse($(this),opts);
});
};
function doPulse($obj,opts) {
for(var i = 0;i<opts.pulses;i++) {
$obj.fadeTo(opts.speed,opts.fadeLow).fadeTo(opts.speed,opts.fadeHigh);
}
//重置为正常值
$obj.fadeTo(opts.speed,1);
}
// 跳动插件默认选项
$.fn.pulse.defaults = {
speed: "slow",
pulses: 2,
fadeLow: 0.2,
fadeHigh: 1
};
})(jQuery);