`
codesoul
  • 浏览: 7214 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

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

阅读更多
开发项目时,经常需要自已开发一些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
分享到:
评论
59 楼 abruzzi 2009-09-17  
确实很好看,也很实用,谢谢分享!图标也做得很精致,可以免费使用吧?呵呵。
58 楼 xiaomimishiye 2009-09-01  
确实挺漂亮啊
57 楼 JohnxyZheng 2009-08-11  
不错,不过存在一点瑕疵:采用XHTML1.0验证方案下,在IE上的样式不能正常显示。
56 楼 ECyzl2007 2009-08-06  
受用了,谢谢
55 楼 wnick 2009-08-05  
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>

修改一下头文件 有意想不到的收获  ->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
54 楼 st52 2009-07-27  
楼主写的这个非常实用,效果不错
53 楼 cjx186 2009-07-25  
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
用xhtml标准时好像显示按钮有问题。。鸡蛋中的骨头。嘿嘿。
52 楼 luojiy 2009-07-25  
不想所有的Input都变成有图标的按钮啊。
51 楼 chris_in 2009-07-24  
感谢lz,这个按钮很好用,但有个问题

button怎么比input高出了几个像素呢?还望lz解答一下。
50 楼 huchao819 2009-07-23  
这个东西好好
49 楼 ▄︻┳═一 2009-07-22  
不错,打算用一下
48 楼 TheMatrix 2009-07-21  
不错,决定收藏了。。。thanks
47 楼 codesoul 2009-07-20  
<div class="quote_title">bookcaicai 写道</div>
<div class="quote_div">
<p>我用Firefox写了个&lt;form action="url"&gt;&lt;/form&gt;</p>
<p>在form里加入楼主给的代码,会出现:只要是按钮,就会向url发送form里有name属性的value.</p>
<p>代码如下:</p>
<pre name="code" class="java">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html; charset=GBK"&gt;
&lt;title&gt;dayoDcc index&lt;/title&gt;
&lt;link rel="stylesheet" type="text/css" href="css/screen.css" /&gt;
&lt;script type="text/javascript" src="js/jquery-1.3.min.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="js/button.js"&gt;&lt;/script&gt;

&lt;/head&gt;
&lt;body&gt;
&lt;div align="center"&gt;
&lt;div&gt;
&lt;center&gt;
&lt;h2&gt;Dcc Auto Send System&lt;/h2&gt;
&lt;/center&gt;
&lt;/div&gt;



&lt;form &gt;
&lt;table   align="center" cellSpacing=0 cellPadding=0 width="90px"&gt;
&lt;thead&gt;
&lt;/thead&gt;
&lt;tbody id="tbody" align="center"&gt;
&lt;tr&gt;
&lt;td&gt;Svn Url:&lt;/td&gt;
&lt;td&gt;&lt;input id="svnurl" name="svnurl" /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="changeTr"&gt;
&lt;td&gt;custem:&lt;/td&gt;
&lt;td&gt;&lt;select id="custem"&gt;
&lt;option id="please"&gt;--请选择--&lt;/option&gt;
&lt;/select&gt;&lt;/td&gt;
&lt;/tr&gt;

&lt;tr id="showcustemTr"&gt;
&lt;td&gt;联系人:&lt;/td&gt;
&lt;td id="showcustem"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="showCustemEamil"&gt;
&lt;td&gt;your chance:&lt;/td&gt;
&lt;td&gt;&lt;textarea cols="19" rows="4" name="message"&gt;&lt;/textarea&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;give message:&lt;/td&gt;
&lt;td&gt;&lt;textarea id="content" name="content" cols="19" rows="3"&gt;&lt;/textarea&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;i&gt;FTP信息:&lt;/i&gt;&lt;/td&gt;
&lt;td&gt;&lt;input id="ftp" /&gt;&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;&lt;td colspan="2"&gt;&lt;input type="button" value="send"  id="send" icon="icon-save"/&gt; &lt;input
type="reset" id="reset" value="reset" id="reset" icon="icon-reset"/&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/form&gt;

&lt;div align="center"&gt;&lt;/div&gt;
&lt;h3 id="showsend"&gt;&lt;/h3&gt;


&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<p> !注:两个.css在css/screen.css里import了</p>
<p>点击后url:http://127.0.0.1:8080/dayoDcc/?svnurl=&amp;message=&amp;content=</p>
<p> </p>
<p>在IE里不会出现这个问题。    </p>
<p>不知道怎么解决,忘楼主给改改<img src="/images/smiles/icon_smile.gif" alt=""></p>
</div>
<p><br>这是因为Firefox下 &lt;button&gt;标签会自动提交,可以在button的onclick中return false;或者下载我刚提交的新版button</p>
46 楼 tntxia 2009-07-19  
相当的不错,风格很像EXT
45 楼 jamix 2009-07-19  
不错...很好用...移上去的时候好像会短了啊...
换成这样就好了..
.z-btn-over .z-btn-right{background:url(images/button/btnover_bg_right.gif) no-repeat -7px 0;}
44 楼 bookcaicai 2009-07-17  
<p>我用Firefox写了个&lt;form action="url"&gt;&lt;/form&gt;</p>
<p>在form里加入楼主给的代码,会出现:只要是按钮,就会向url发送form里有name属性的value.</p>
<p>代码如下:</p>
<pre name="code" class="java">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html; charset=GBK"&gt;
&lt;title&gt;dayoDcc index&lt;/title&gt;
&lt;link rel="stylesheet" type="text/css" href="css/screen.css" /&gt;
&lt;script type="text/javascript" src="js/jquery-1.3.min.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="js/button.js"&gt;&lt;/script&gt;

&lt;/head&gt;
&lt;body&gt;
&lt;div align="center"&gt;
&lt;div&gt;
&lt;center&gt;
&lt;h2&gt;Dcc Auto Send System&lt;/h2&gt;
&lt;/center&gt;
&lt;/div&gt;



&lt;form &gt;
&lt;table   align="center" cellSpacing=0 cellPadding=0 width="90px"&gt;
&lt;thead&gt;
&lt;/thead&gt;
&lt;tbody id="tbody" align="center"&gt;
&lt;tr&gt;
&lt;td&gt;Svn Url:&lt;/td&gt;
&lt;td&gt;&lt;input id="svnurl" name="svnurl" /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="changeTr"&gt;
&lt;td&gt;custem:&lt;/td&gt;
&lt;td&gt;&lt;select id="custem"&gt;
&lt;option id="please"&gt;--请选择--&lt;/option&gt;
&lt;/select&gt;&lt;/td&gt;
&lt;/tr&gt;

&lt;tr id="showcustemTr"&gt;
&lt;td&gt;联系人:&lt;/td&gt;
&lt;td id="showcustem"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="showCustemEamil"&gt;
&lt;td&gt;your chance:&lt;/td&gt;
&lt;td&gt;&lt;textarea cols="19" rows="4" name="message"&gt;&lt;/textarea&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;give message:&lt;/td&gt;
&lt;td&gt;&lt;textarea id="content" name="content" cols="19" rows="3"&gt;&lt;/textarea&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;i&gt;FTP信息:&lt;/i&gt;&lt;/td&gt;
&lt;td&gt;&lt;input id="ftp" /&gt;&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;&lt;td colspan="2"&gt;&lt;input type="button" value="send"  id="send" icon="icon-save"/&gt; &lt;input
type="reset" id="reset" value="reset" id="reset" icon="icon-reset"/&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/form&gt;

&lt;div align="center"&gt;&lt;/div&gt;
&lt;h3 id="showsend"&gt;&lt;/h3&gt;


&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<p> !注:两个.css在css/screen.css里import了</p>
<p>点击后url:http://127.0.0.1:8080/dayoDcc/?svnurl=&amp;message=&amp;content=</p>
<p> </p>
<p>在IE里不会出现这个问题。    </p>
<p>不知道怎么解决,忘楼主给改改<img src="/images/smiles/icon_smile.gif" alt=""></p>
43 楼 nbkangta 2009-07-17  
在标签里面加上了自定义属性,这个做法似乎不是很合适啊
42 楼 codesoul 2009-07-17  
windedge 写道
貌似是同事
接头暗号: my? 我是dg的
你的validate也很好, 有空也共享一下


同事,你是东莞的?
有空再来整理些控件了。
41 楼 codesoul 2009-07-17  
<div class="quote_title">zhongxuchen 写道</div>
<div class="quote_div">
<p>楼主,用了你的组件,但问题挺大的,样式严重冲突,你的 <br>var bntStr=[ <br>'&lt;table id="',id,'" class="z-btn" cellSpacing=0 cellPadding=0 border=0&gt;&lt;tbody&gt;&lt;tr&gt;', <br>'&lt;TD class=z-btn-left&gt;&lt;i&gt;&amp;nbsp;&lt;/i&gt;&lt;/TD&gt;', <br>'&lt;TD class=z-btn-center&gt;&lt;EM unselectable="on"&gt;', <br>'&lt;BUTTON class="z-btn-text ',icon,'" &gt;',$(this).attr('value'),'&lt;/BUTTON&gt;', <br>'&lt;/EM&gt;&lt;/TD&gt;', <br>'&lt;TD class=z-btn-right&gt;&lt;i&gt;&amp;nbsp;&lt;/i&gt;&lt;/TD&gt;', <br>'&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;' <br>];</p>
<p>这段代码写法有点不合理,按钮放到table中,如果table有样式的话,你这个button会严重走形,</p>
<p> </p>
<p>我的样式是这样的,如下:</p>
<p>#sag_listtable {<br> font-size: 9pt;<br> border-collapse: collapse;<br> width: 100%;<br> border: 1px solid #A0B7C5;<br> text-align: center;<br>}</p>
<p>#sag_listtable td {<br> font-size: 9pt;<br> padding-top: 2px;<br> padding-bottom: 0px;<br> <span style="color: #888888;">border: 1px solid #A0B7C5; 这一句去掉你的样式就正确了</span><br> padding-left: 8px;<br> padding-right: 8px;<br>}</p>
<p> </p>
<p>楼主能不能改进一下,我们项目已经用了你的button了,十分感谢能改进一下</p>
<p> </p>
</div>
<p><br>添加样式: .z-btn td{border:0 none;margin:0px;padding:0px;}</p>
<p>将你的样式用成class方法,不要用id方法,CSS重复定义时:Style > ID > Class > 缺省的Html元素,并且你的样式要写在button之前,如下:</p>
<p> </p>
<p>.sag_listtable {<br> font-size: 9pt;<br> border-collapse: collapse;<br> width: 100%;<br> border: 1px solid #A0B7C5;<br> text-align: center;<br>}</p>
<p>.sag_listtable td {<br> font-size: 9pt;<br> padding-top: 2px;<br> padding-bottom: 0px;<br> <span style="color: #888888;">border: 1px solid #A0B7C5; 这一句去掉你的样式就正确了</span><br> padding-left: 8px;<br> padding-right: 8px;<br>}</p>
<p>.z-btn td{border:0 none;margin:0px;padding:0px;}</p>
<p> </p>
<p>具体实际情况就根据CSS重复定义优先级:Style > ID > Class > 缺省的Html元素,来处理。</p>
40 楼 zhongxuchen 2009-07-16  
<p>楼主,用了你的组件,但问题挺大的,样式严重冲突,你的 <br>var bntStr=[ <br>'&lt;table id="',id,'" class="z-btn" cellSpacing=0 cellPadding=0 border=0&gt;&lt;tbody&gt;&lt;tr&gt;', <br>'&lt;TD class=z-btn-left&gt;&lt;i&gt;&amp;nbsp;&lt;/i&gt;&lt;/TD&gt;', <br>'&lt;TD class=z-btn-center&gt;&lt;EM unselectable="on"&gt;', <br>'&lt;BUTTON class="z-btn-text ',icon,'" &gt;',$(this).attr('value'),'&lt;/BUTTON&gt;', <br>'&lt;/EM&gt;&lt;/TD&gt;', <br>'&lt;TD class=z-btn-right&gt;&lt;i&gt;&amp;nbsp;&lt;/i&gt;&lt;/TD&gt;', <br>'&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;' <br>];</p>
<p>这段代码写法有点不合理,按钮放到table中,如果table有样式的话,你这个button会严重走形,</p>
<p> </p>
<p>我的样式是这样的,如下:</p>
<p>#sag_listtable {<br> font-size: 9pt;<br> border-collapse: collapse;<br> width: 100%;<br> border: 1px solid #A0B7C5;<br> text-align: center;<br>}</p>
<p>#sag_listtable td {<br> font-size: 9pt;<br> padding-top: 2px;<br> padding-bottom: 0px;<br> <span style="color: #888888;">border: 1px solid #A0B7C5; 这一句去掉你的样式就正确了</span><br> padding-left: 8px;<br> padding-right: 8px;<br>}</p>
<p> </p>
<p>楼主能不能改进一下,我们项目已经用了你的button了,十分感谢能改进一下</p>
<p> </p>

相关推荐

    ASP.NET源代码共享

    在这个名为"ASP.NET源代码共享"的主题中,我们可以推测这是一个关于分享ASP.NET相关项目源代码的资源。尽管描述部分为空,但从标签"源码"和"工具"可以推断,这个压缩包可能包含了一个或多个实用的ASP.NET工具或示例...

    Jquery日历控件源码

    "Lee10DateTime-K1.0"这款控件具有无加密源码的特点,意味着开发者可以自由查看和修改源代码,以便更好地理解和定制功能。 该控件的核心功能包括: 1. **显示日历**:控件会根据指定的HTML元素生成一个日历界面,...

    Highcharts jQuery 图表控件

    在描述中提到的C#源代码,可能是基于Highcharts的.NET封装,方便.NET开发者更便捷地集成和使用Highcharts。 在实际应用中,Highcharts主要通过JavaScript API进行配置和操作。开发者可以通过设置各种选项来定制图表...

    一个漂亮的fileupload控件

    在这里,描述提到这个控件是网上找到的源代码,意味着它可能是一个开源或者共享的项目,开发者可以自由下载、使用甚至修改来适应自己的项目需求。 首先,我们来探讨一下FileUpload控件的基本功能。在传统的HTML中,...

    JAVA上百实例源码以及开源项目源代码

    日历表格面板 [ConfigLine.java] 控制条类 [RoundBox.java] 限定选择控件 [MonthMaker.java] 月份表算法类 [Pallet.java] 调色板,统一配色类 Java扫雷源码 Java生成自定义控件源代码 2个目标文件 Java实现HTTP连接...

    ASP.NET 开发局域网文件共享及检索系统的设计与开发(源代码+论文)

    在“ASP.NET 开发局域网文件共享及检索系统的设计与开发(源代码+论文)”这个项目中,我们可以看到开发者利用ASP.NET技术构建了一个针对局域网环境的文件共享和检索系统。下面将详细解释此系统的开发要点和涉及的关键...

    web打印控件代码

    在提供的文件"2006379481763"中,可能包含了实现上述功能的源代码、示例或者相关文档。通过研究这些文件,开发者可以学习如何在自己的项目中实现类似的Web打印功能。 总的来说,Web打印控件在电子商务、在线报表、...

    ASP基于WEB新闻发布系统(源代码+论文).rar

    源代码的提供对于初学者和开发者来说,是一个极好的学习资源,可以深入理解ASP.NET的编程模型和Web应用的开发流程。 该项目主要涉及以下几个核心知识点: 1. **ASP.NET Web Forms**:作为ASP.NET的基础,Web Forms...

    源代码-天气预报插件源码 v1.0.zip

    这意味着天气预报插件的源代码可能是用ASP语言编写的,这将涉及到ASP的基础语法、服务器控件、请求响应处理等相关知识。 【文件名称列表解析】 由于提供的文件名称列表只有一个数字串"132687961360656692",这通常...

    ASP.net的Ajax控件代码演示

    - 对于跨域请求或安全考虑,需要理解并配置CORS(跨源资源共享)策略。 - 确保在不支持JavaScript的环境中,应用也能正常工作,提供良好的降级策略。 通过"AJAXEnabledWebSite1"项目的实践和学习,你将能掌握ASP...

    日历控件(浏览器兼容)

    同源策略是浏览器安全机制的一部分,阻止了不同源的页面之间共享数据,例如,当一个iframe尝试访问其父窗口的数据时,如果它们的源不相同,就会遇到限制。在IIS服务器上测试可能是为了模拟一个更严格的环境,确保...

    日历控件(签到、日程表)

    在压缩包的“1.1”文件中,可能包含了该日历控件的源代码、资源文件、文档说明或者示例项目。这些资源可以帮助开发者更深入地理解控件的工作原理,对其进行定制或整合到自己的项目中。源代码的结构和注释将有助于...

    省市区三级联动C#源代码(含全国各地市数据库)无刷新非ASMX服务

    标题中的“省市区三级联动C#源代码(含全国各地市数据库)无刷新非ASMX服务”指的是一个基于C#编程语言实现的Web应用程序,用于在网页上实现省、市、区三级联动的选择功能,且无需页面刷新。这个系统通常用在用户填写...

    ASP基于WEB的办公自动化管理系统(源代码+设计说明书).zip

    这个“ASP基于WEB的办公自动化管理系统”源代码和设计说明书的压缩包提供了一个实际应用实例,帮助我们了解如何利用ASP技术来实现企业或组织内部的办公自动化。 办公自动化管理系统(Office Automation System, OAS...

    asp.net日历控件

    一旦日历控件在工具箱中可用,我们就可以在设计视图中拖放到网页上,或者在源代码视图中通过以下方式手动添加: ```html &lt;asp:Calendar ID="Calendar1" runat="server"&gt;&lt;/asp:Calendar&gt; ``` 日历控件提供了一些...

    js日历控件

    8. **数据源集成**:与后台数据库或其他数据源(如Google日历、Outlook等)的集成,可以实现日程的同步和共享。 9. **性能优化**:优秀的日历控件会考虑性能优化,如延迟加载、缓存策略等,以减少页面加载时间和...

    .net文件上传控件

    7. **跨域上传**:如果需要在多个域之间进行文件上传,需要处理CORS(跨源资源共享)设置,确保服务器允许从其他域名发送上传请求。 总之,.NET文件上传控件是一个复杂但重要的功能,涉及到前端交互、后端处理、...

    jquery表格插件jqgrid

    3. **初始化jqGrid**:通过JavaScript调用`$("#tableId").jqGrid()`方法初始化表格,配置相关的参数,如列信息、数据源、操作按钮等。 4. **加载数据**:根据数据源类型,设置相应的URL或数据,jqGrid会自动处理...

Global site tag (gtag.js) - Google Analytics