`
nmgxzm2001
  • 浏览: 10895 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

大家看看我这样写的Panel没有问题吧

 
阅读更多
本人一直很喜欢ext的风格,想自己用jquery仿写一个!闲着无事,写个试试,先写了个panel。高手们帮忙看看有没有问题。

EasyJs.Panel=function(config){ 
	EasyJs.Panel.superclass.constructor.call(this,config);
}
EasyJs.extend(EasyJs.Panel,EasyJs.Component,{
	renderTo: document.body,
	initTool:function(panelHeader){
		if(this.collapsible||this.minimizable||this.maximizable||this.closable){
			var panel_tool=$('<div class="panel-tool"></div>');
			if(this.closable)$('<div class="panel-tool-close"></div>').appendTo(panel_tool);
			if(this.maximizable)$('<div class="panel-tool-max"></div>').appendTo(panel_tool);
			if(this.minimizable)$('<div class="panel-tool-min"></div>').appendTo(panel_tool);
			if(this.collapsible)$('<div class="panel-tool-collapse"></div>').appendTo(panel_tool);
			panel_tool.appendTo(panelHeader);
		}
	},
	initBody:function(panel){
		$('<div id="'+this.getID()+'body" class="easyui-panel panel-body" style="width:'+(this.width-22)+'px; height:'+(this.height-48)+'px; padding: 10px; display: block;"></div>').appendTo(panel);
	},
	initComponent:function(){
		var panelOutside=$("<div class='easyui-panel-title' id="+this.getID()+"></div>");
		var panel=$('<div class="panel" style="display: block; width:'+this.width+'px;"></div>');
		var panelHeader=$('<div class="panel-header" style="width:'+(this.width-12)+'px;">');
			$('<div class="panel-title panel-with-icon">'+(this.title?this.title:"")+'</div>').appendTo(panelHeader);
		if(this.iconCls){
			$('<div class="panel-icon '+this.iconCls+'"></div>').appendTo(panelHeader);
		}
		this.initTool(panelHeader);
		panelHeader.appendTo(panel);
		this.initBody(panel);
		panel.appendTo(panelOutside);
		panelOutside.appendTo(this.getRenderTo());
		delete this.renderTo;
		this.initItems();
		this.initHtml();
		this.initEvent();
	},
	initItems:function(){
		var items=this.items;
		if(items&&items.length>0){
			var count=items.length;
			var pBody=$("#"+this.getID()+"body");
			for(var i=0;i<count;i++){
				$("#"+items[i].getID()).appendTo(pBody);
			}
		}
	},
	initHtml:function(){
		var html=this.html;
		if(html){
			$("#"+this.getID()+"body").append(html);
		}
	},
	initEvent:function(){
		var id=this.getID();
		var panel=$("#"+id),tool=panel.find("div.panel-tool"),tools=tool.find("> div");;
		tools.bind("mouseover",function(){$(this).addClass("panel-tool-over");});
		tools.bind("mouseout",function(){$(this).removeClass("panel-tool-over");});
		tool.find("div.panel-tool-close").click(function(e) {
		  panel.find("div.panel").hide();
		  e.stopImmediatePropagation();//阻止剩余的事件处理函数执行并且防止事件冒泡到DOM树上
		});
		tool.find("div.panel-tool-collapse").bind('click', function(e) {
			var th=$(this),newClass="panel-tool-expand",thBody=$('#'+id+'body');
			if(th.attr("class").indexOf(newClass)>-1){
				th.removeClass(newClass);
				thBody.slideDown('slow');
			}else{
				th.addClass(newClass);
				thBody.slideUp('slow');
			}
			e.stopImmediatePropagation();
		});
		tool.find("div.panel-tool-min").bind('click', function(e) {
			 panel.find("> div.panel").hide();
			 e.stopImmediatePropagation();
		});
	}
});



其他相关的东西在附近里!
分享到:
评论
1 楼 zhupan 2011-12-23  

相关推荐

    STAR_Panel matlab

    STAR_Panel matlab代码的,大家可以看看,受益很大。

    winform中的panel使用.docx

    前面我们了解了GroupBox(控件组)控件(vb.net入门——分组控件:GroupBox控件的使用)的使用,这里我们将来看看下怎么使用Panel(也称面板)控件。实际上,Panel很类似于GroupBox,其区别是:只有GroupBox控件可以显示...

    4.3寸 panel规格书

    4.3寸panel

    winform panel控件背景透明

    winform panel控件背景透明 在网页中通过div+css实现半透明效果不难,今天我们看看一种在winfrom中实现的方法

    C#在panel动态添加控件

    在 .net C#,在panel上动态增加控件示例子,简单,一看就会.

    C# WinForm窗体控件Panel修改边框颜色以及边框宽度方法

    C# WinForm窗体控件Panel修改边框颜色以及边框宽度方法 可以直接到博客地址查看主要代码:http://www.cnblogs.com/JiYF/p/9047559.html

    C# PANEL透明度可调组件

    第一上传,试一试看看,这是我在网上搜索到的半成品控件,然后在VS2008中略加修改,最后调试OK的一个组件。可以直接加入到你的项目中使用。

    弧形圆角的panel

    可以选择边框的颜色, 可以选择任意聊个角的弧度 但是如果把它作为底层,它的上面一层不能用dock=fill, 否则会看不见边框

    C#中winform中panel重叠无法显示问题的解决

    主要介绍了C#中winform中panel重叠无法显示问题的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    在Form和Panel中一直显示hint

    在Form和Panel中一直显示hint,默认的在同一个控件内hint只会显示一次,此demo可以一直显示hint;

    Homekit-panel-card:用于家庭助理的 Homekit 面板卡

    家庭卡Homekit 风格的家庭助理卡这张卡片最好与panel: true一起使用,这样卡片就会填满... 你可以在这里找到这张卡片: : 您是否有关于自定义弹出窗口的想法创建一个问题,然后我可以看看我是否可以帮助解决这个问题:)

    一个扩展的C# Panel控件

    C#中Panel等控件的边框缺省只有三种:None, Single和3D,这在实际应用中显然不够用。该控件就是对Panel的扩展,可以设备新的边框,也可以和缺省边框组合使用。试试看吧:有原码,可以自己任意更改。

    sspanel-autocheckin:Pa SSPanel流量自动签到脚本

    SSPanel自动签到V2.0支持多站点多用户目录相关说明适用于使用SSPanel用户管理面板内置的网站,网站页面Powered by SSPANEL会有支持使用配置文件读取账户信息,支持多机场多用户签到支持一日多次签到支持推签到信息到...

    s3c2410-touchPanel-原码

    这是一个很热门的科技, 可以下载看看, s3c2410-touchPanel.cpp

    extjs3 swfupload panel

    网上好不容易才找到的,可以用,而且是EXTJS3下可以使用,和大家分享下,如果用不了,请看看你的FLASH版本,运行TMP.HTM就可以了

    液晶行业面板半自动盖panel-sw18可编辑-SOLIDWORKS零件图-SOLIDWORKS工程图-三维3D设计图

    压缩包内文件请看网页最后。 液晶行业面板半自动盖panel-sw18可编辑_SOLIDWORKS零件图_SOLIDWORKS工程图_三维3D设计图液晶行业面板半自动盖panel-sw18可编辑_SOLIDWORKS零件图_SOLIDWORKS工程图_三维3D设计图液晶...

    为flex panel添加最小,最大化和关闭按钮(修改版)

    本资源修改了panel的最小,最大化按钮的bug,增加了拖动面板时的判断。目前来看还是不错的。希望大家多提意见。

    bpmnjs modeler 例子 如何画图 如何汉化

    这个东西就明白了,现在的东西不是这样,所以有时候只能看看他export出来的东西是做什么用的,具体细节不好研究。 首先要画一个model import Modeler from "bpmn-js/lib/Modeler"; import propertiesPanelModule ...

Global site tag (gtag.js) - Google Analytics