论坛首页 Web前端技术论坛

jquery漂亮的按扭控件(源代码共享)

浏览 92499 次
该帖已经被评为良好帖
作者 正文
   发表时间:2009-07-09   最后修改:2009-07-20
开发项目时,经常需要自已开发一些UI组件,在这里共享一个刚开发的Button控件,这个Button使用很简单,只要加入相关的CSS和JS文件,这样页面中的所有input按扭都将会被自动渲染为漂亮的个性化按扭,不需要写一句代码。
源代码和示例在附件中,Button的相关JS源代码如下:

(function($){
	$.fn.btn = function(){
		var btn = this.data("_self");;
		if(btn){
			return btn;
		};
		this.init = function(){
			var obj = $(this);
			var id=$(this).attr('id')||"gen"+Math.random();
			var icon = $(this).attr('icon')||'icon-btncom';
			var bntStr=[
				'<table id="',id,'" class="z-btn" cellSpacing=0 cellPadding=0 border=0><tbody><tr>',
					'<TD class=z-btn-left><i>&nbsp;</i></TD>',
					'<TD class=z-btn-center><EM unselectable="on">',
						'<BUTTON class="z-btn-text ',icon,'" >',$(this).attr('value'),'</BUTTON>',
					'</EM></TD>',
					'<TD class=z-btn-right><i>&nbsp;</i></TD>',
				'</tr></tbody></table>'
			];
			var bnt = $(bntStr.join('')).btn();
			bnt._click = eval(obj.attr("onclick"));
			bnt.disable();
			if(obj.attr("disabled"))
				bnt.disable();
			else bnt.enable();
			$(this).replaceWith(bnt);
			bnt.data("_self", bnt);  
			return bnt;
		};
		this.enable = function(){
			this.removeClass("z-btn-dsb");
			this.click(this._click);
			this.hover(
				  function () {
				    $(this).addClass("z-btn-over");
				  },
				  function () {
				    $(this).removeClass("z-btn-over");
				  }
				)
		};
		this.disable = function(){
			 this.addClass("z-btn-dsb");
			 this.unbind("hover");
			 this.unbind("click");
		};  
		return this;
	};
	
	$(function(){
		$("input[type='button']").each(function(){
			$(this).btn().init();
		});
		$("input[type='reset']").each(function(){
			$(this).btn().init().click(function(){
				var form = $(this).parents("form")[0];
				if(form)
					form.reset();
			});
		});
		$("input[type='submit']").each(function(){
			$(this).btn().init().click(function(){
				var form = $(this).parents("form")[0];
				if(form)
					form.submit();
			});
		});
	})
})(jQuery);



[img][/img]

  • 大小: 107.2 KB
   发表时间:2009-07-09  
感觉挺实用的!谢谢了
0 请登录后投票
   发表时间:2009-07-09  
确实不错,
0 请登录后投票
   发表时间:2009-07-10  
确实不错,楼主要是能把图片和在一张里面,然后用CSS来控制就更好了。
0 请登录后投票
   发表时间:2009-07-13  
Snowpine 写道
确实不错,楼主要是能把图片和在一张里面,然后用CSS来控制就更好了。


什么意思啊?
0 请登录后投票
   发表时间:2009-07-13  
codesoul 写道
Snowpine 写道
确实不错,楼主要是能把图片和在一张里面,然后用CSS来控制就更好了。


什么意思啊?

css sprite
0 请登录后投票
   发表时间:2009-07-13  
生成按键的这个TABLE同EXTJS很象啊。
0 请登录后投票
   发表时间:2009-07-14  
quaff 写道
codesoul 写道
Snowpine 写道
确实不错,楼主要是能把图片和在一张里面,然后用CSS来控制就更好了。


什么意思啊?

css sprite


这个方式简洁,等再改进一下。
0 请登录后投票
   发表时间:2009-07-14  
stworthy 写道
生成按键的这个TABLE同EXTJS很象啊。

参考了EXT,也可以说是在EXT的基础上改装、简化。
也是在匆忙中开发的,为了项目中不用每个按扭都让美工MM去做图片。
1 请登录后投票
   发表时间:2009-07-14  
效果不错 感谢ing
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics