锋利的jQuery-7--一个$.fn.color插件的编写过程
编写一个设置和获取元素的color的插件:
首先实现第一个功能,设置:
;(function($){ $.fn.extend({ color:function(value){ return this.css("color",value); //css方法本身就是返回当前元素的jQuery对象 } }); })(jQuery);
$("span").color("red"); //调用
然后实现第二个功能,获取:如果没传入value就是获取
;(function($){ $.fn.extend({ color:function(value){ if(value == 'undefined'){ //如果没传入值就是获取 return this.css("color"); }else{ return this.css("color",value); //css方法本身具有返回第一个匹配元素的样式值的功能,此处无需通过eq()来获取第一个元素 } } }); })(jQuery);
实际上,css方法内部已经有判断value值是否为undefined的机制,所以才可以根据传递参数的不同返回不同值。因此可以:
;(function($){ $.fn.extend({ color:function(value){ return this.css("color",value); //传值就是设置,没传就是取值 } }); })(jQuery);