【发布时间】:2011-11-18 18:07:15
【问题描述】:
我编写了一个非常简单的插件,它允许我使用 0xffccaa 格式的 css 颜色而不是 '#ffccaa'(主要是为了避免写引号 - 但也可以通过简单地将颜色添加为整数来轻松修改颜色)。
我以$().xcss({}) 实现,但更愿意只使用$().css({})。
如何扩展$.fn.css 函数的功能,有什么需要注意的陷阱吗?
另外,我想我也想为$.animate 做同样的事情。
小提琴:http://jsfiddle.net/hB4R8/
// pugin wrapper
(function($){ $.fn.xcss = function(opts){
// loop through css color properties
$.each(['background', 'backgroundColor','background-color', 'color', 'borderColor','border-color'],function(i,v){
// if set as number (will be integer - not hex at this point)
// convert the value to `#ffccaa` format (adds padding if needed)
if(typeof opts[v] === 'number')
opts[v] = ('00000'+opts[v].toString(16)).replace(/.*([a-f\d]{6})$/,'#$1')
})
// run css funciton with modified options
this.css(opts)
// allow chaining
return this
} })(jQuery)
// test the plugin
$('body').xcss({
'background-color': 0xffccFF,
color: 0xccffcc,
border: '3px solid red',
borderColor:0x0ccaa,
padding:50
}).html('<h1>This should be a funny color</h1>')
【问题讨论】:
标签: jquery css plugins jquery-animate