jQuery插件求助

碰到这样一个有关jQuery插件的问题:请尝试编写jQuery插件,函数名为colorButton, 只适用于input [type=“button”]和input[type:”submit”]标签。插件接受两个可选的配置参数,参数为16进制颜色值如:#FFCC00。插件默认的两个颜色值为 “#FFCC00”和“#CCFF00”,如果配置插件时未传入值则采用默认颜色值,传入值可覆盖默认值。每个适用的元素上可单独配置。当鼠标进入元素时如果是 button则将当前对象的背景色改为颜色值一,如果为submit则将当前对象的背景色改为颜色值二。鼠标移开后颜色置为window 按钮默认色值(灰色)。插件需可处理多个元素同时绑定的操作。调用插件方法形如$(‘input[type=“submit”]’).colorButton({c1:”#F0F0F0”, c2:”#0F0F0F”});$(“input”).colorButton();哪位能帮下忙?
2026年09月22日 01:41
有1个网友回答
网友(1):

(function($){
$.fn.colorButton = function(opt){
var options = $.extend({}, $.fn.colorButton.defaults, opt||{});
this.each(function(){
showColor($(this),options);
});
};

$.fn.colorButton.defaults={
c1: '#FFCC00',
c2: '#CCFF00'
};

function showColor(obj,opt){
var n=obj.attr('nodeName'),t=obj.attr('type'),flag=false;
if(n){n=n.toLowerCase();}
if(t){t=t.toLowerCase();}
if(n=='input'){
if(t=='button'){
flag=true;
n=opt.c1;
}else if(t=='submit'){
flag=true;
n=opt.c2;
}
}
if(flag){
obj.hover(
function(){
$(this).css('background-color',n);
},function(){
$(this).css('background-color','');
});
}
}
})(jQuery);

html