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

仿ext写了个panel用jquery写的!

阅读更多
相关依赖的东西在博客中可以下载,大家给看看!我的思路对嘛?

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();
		});
	}
});
$(function(){
var t=new EasyJs.Panel({
	width:500,
    height:200,
    title:'panel',
	iconCls:"icon-save",//图标 className
	collapsible:true,//可折叠
	minimizable:true,//可以最小话
	maximizable:true,//可以最大化
	closable:true,//可以关闭
	items:[new EasyJs.Panel({width:100,height:100,title:"child title",collapsible:true,closable:true})],
	html:"ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd"
});
}
)







http://nmgxzm2001.iteye.com/blog/1316262
分享到:
评论

相关推荐

    extjs中Ext.Panel和TreePanel 组件动态加载本地页面数据

    在EXTJS这个强大的JavaScript框架中,`Ext.Panel`和`TreePanel`是两个非常重要的组件,它们被广泛用于构建复杂的用户界面。这篇文章将探讨如何在这些组件中动态加载本地页面数据,以提升用户体验并实现灵活的数据...

    Ext用户UI界面优秀框架

    它们可以结合使用,例如利用jQuery进行一些特定的DOM操作,然后通过Ext JS 构建整个应用的框架。 文件名"Ext+JS"可能是指包含Ext JS库的JavaScript文件,通常这类文件会包含Ext JS的所有组件、工具和功能,开发者...

    使用html标签、jQuery-EasyUI和Ext4分别展示json数据的效果

    在Ext4中,你可以使用`Ext.data.Store`和`Ext.grid.Panel`来展示JSON数据。首先定义一个Store来加载JSON数据,然后创建一个Grid Panel来展示这些数据: ```javascript Ext.application({ name: 'MyApp', launch: ...

    使用html标签、jQuery-EasyUI和Ext4分别展示json数据

    EasyUI是基于jQuery的一个轻量级的UI框架,它提供了一系列易于使用的组件,如表格、面板等,帮助开发者快速创建交互式用户界面。展示JSON数据时,可以使用EasyUI的`datagrid`组件。首先,需要将JSON数据转化为符合...

    使用Ext显示数据库中内容

    `Ext`(全称为`Sencha Ext JS`)是一个基于`jQuery`的开源JavaScript框架,它提供了丰富的组件模型和可扩展的UI控件。`Ext`使得开发者能够创建具有桌面级应用体验的Web应用,包括网格、表格、表单、树形视图等。 在...

    Ext 仿QQ-MSN出现消息框

    标题中的“Ext 仿QQ-MSN出现消息框”指的是使用ExtJS这个JavaScript库来创建一个类似于QQ或MSN即时通讯软件中的消息弹出框。在Web应用程序中,这种功能常常用于模拟原生桌面应用的交互体验,提高用户界面的友好性和...

    Ext获取对象

    例如,如果有一个组件的ID为`'myPanel'`,则可以使用`var myPanel = Ext.getCmp('myPanel')`来获取该面板。 2. **DOM选择器**: 类似于jQuery,Ext JS提供了`Ext.query`(基于Sizzle引擎)方法来查询DOM元素。例如...

    ext三列拖动

    实现这个功能的关键在于使用`Ext.grid.header.Container`类和`Ext.grid.ColumnLayout`布局。`header.Container`负责管理所有列头,而`ColumnLayout`布局则处理列的布局和拖放行为。在配置Grid时,我们需要启用`...

    Yui_ext 学习笔记

    获取多个 DOM 节点时,如果不能通过 ID 来获取,可以使用其他选择器,如 CSS 类选择器、XPath 或者 jQuery 风格的选择器。Ext 提供了 `SelectQuery`(或 `Ext.query`)方法,用于根据 CSS 选择器查找元素集合。 ...

    ext_image.rar_ext_image_extjs_extjs 4.2 img_extjs image_extjs图片上

    总之,"ext_image.rar"提供的资源展示了如何使用ExtJS 4.2构建一个完整的图片管理系统,包括图片的显示、上传和删除功能。对于开发者来说,这是一份有价值的参考资料,可以帮助他们掌握ExtJS在实际项目中的应用,...

    EXT2.0学习资料.rar

    EXT2.0是EXT JS库的一个早期版本,它在Web应用程序开发中被广泛使用,尤其在构建富客户端界面时。EXT JS是一个强大的JavaScript库,它提供了丰富的组件和数据绑定功能,使得开发者能够创建复杂的、交互性强的Web应用...

    ajax + jquery + uploadbean

    在ExtJS中,可以使用`Ext.form.FileField`或`Ext.form.Panel`的`items`配置项来创建一个文件上传表单,通过设置`action`属性指向UploadBean处理的URL,实现文件上传。 总结来说,Ajax负责异步数据交换,jQuery简化...

    asp.net ext 中文手册

    `DomQuery`是EXT提供的一个用于操作DOM的强大工具,它类似于jQuery,但专门针对EXT进行了优化。掌握`DomQuery`的基础用法对于高效开发EXT应用至关重要。此外,扩展EXT组件也是开发中常见的需求,这可能涉及修改现有...

    Ext+JS深入浅出.pdf

    - **易于集成**:能够轻松地与其他JavaScript库一起使用,如jQuery等。 #### 二、Ext JS的应用场景 - **企业级应用**:尤其适用于管理信息系统(MIS)等类型的应用程序。 - **快速原型开发**:利用其丰富的组件库,...

    EXT 中文手册

    - **功能**:支持选择、过滤、遍历等操作,类似于jQuery的使用方式。 - **示例**:例如选择所有具有特定类名的元素,或者通过链式调用执行一系列操作。 #### 十一、扩展EXT组件 - **自定义组件**:EXT允许开发者...

    jquery-easyui

    jQuery EasyUI 是一个基于 jQuery 的前端框架,它提供了一系列易于使用的组件,帮助开发者快速构建具有专业外观的 Web 应用程序。在EXTUI广受好评的基础上,jQuery EasyUI 为Java开发者提供了一个更加轻量级且功能...

    jQuery EasyUI 1.4.1和EXTension API 中文chm版

    `jQuery EasyUI 1.4.1 版 API 中文版` 是一个帮助开发者理解和使用EasyUI及其EXTension的参考手册,通常包含以下内容: - **组件API**: 详细列出每个组件的属性、方法、事件和配置选项,指导如何初始化、操作和定制...

Global site tag (gtag.js) - Google Analytics