29-解决方案
12.7.2 解决方案
利用元数据插件很简单:检查插件是否可用,然后用元数据参数扩展插件选项。使用这一技术,可以在调用插件时提供默认选项,并通过标记中的元数据覆盖每个操作对象的默认选项:
<!--包含元数据插件 -->
<script type="text/javascript" src="metadata/jquery.metadata.js"></script>
<!-- 包含元数据的标记示例-->
<p class="{pulses: 8, speed: 'slow'}">Starship Enterprise</p>
<p>Battlestar Galactica</p>
<p class="{speed: 100}">Serenity</p>
;(function($) {
$.fn.pulse = function(options) {
//将传入的选项与默认选项合并
var opts = $.extend({}, $.fn.pulse.defaults, options);
return this.each(function() {
//为这个特定节点合并元数据元素
var o = $.metadata ? $.extend({}, opts, $.metadata.get(this)) : opts;
doPulse($(this),o);
});
};
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);