`
yiyu
  • 浏览: 187217 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

YUI中的模块化使用对话框

阅读更多
最近在试着用YUI 2.8.1,想到一个将对话框模块化的方法,拿出来分享一下。

目的是这样的,假设在我们的应用程序中,有多个页面要使用一个一样的对话框,那么
每个页面引入一样的html和js是很不好的实现方式,这时我们可以将对话框的html存储
为一个单独的文本文件,在页面中动态地加载这段html到适当的位置,然后再展现。进一
步可以将这段js代码抽出来做一个通用的函数,这样要使用该对话框的页面只要调用这个
函数就可以了。

一下是我具体实现的代码,其中显示对话框的js已经做成一个单独的函数了,但是暂时是
放在页面里的。

对话框的html代码如下,文件名是userInfo.dlg:
<div class="hd">Title</div>
<div class="bd">
    <form name="dlgUserInfoForm">
    	<table>
    		<tr>
    			<td width="40%"><label for="lginID">登录ID:</label></td>
    			<td><input type="text" name="lginID" /></td>
    		</tr>
    		<tr>
    			<td><label for="name">姓名:</label></td>
    			<td><input type="text" name="name" /></td>
    		</tr>
    		<tr>
    			<td><label for="password">密码:</label></td>
    			<td><input type="password" name="password" /></td>
    		</tr>
    		<tr>
    			<td><label for="confirmPassword">确认密码:</label></td>
    			<td><input type="text" name="confirmPassword" /></td>
    		</tr>
    		<tr>
    			<td><label for="activity">激活状态:</label></td>
    			<td><input type="text" name="activity" /></td>
    		</tr>
    		<tr>
    			<td><label for="seq">序号:</label></td>
    			<td><input type="text" name="seq" /></td>
    		</tr>
    	</table>
    </form>
</div>


页面中有个新增用户的按钮,按下时调用showAddUserDlg():
<button onclick="showAddUserDlg()">新增用户</button>


showAddUserDlg定义如下,就是加载相应的YUI的库然后调用loadUserInfoDlg():
function showAddUserDlg() {
	new YAHOO.util.YUILoader({
		require: ['container', 'dragdrop', 'button'],
		base: '../../js/yui_2.8.1/',
		filter: 'RAW',
		onSuccess: loadUserInfoDlg,
		onFailure: function(o) {
			alert("YUI模块加载错误: " + YAHOO.lang.dump(o));
		}
	}).insert();
}


loadUserInfoDlg定义如下:
function loadUserInfoDlg() {
	YAHOO.util.Connect.asyncRequest(
		"GET",
		"userInfo.dlg",
		{
			success: function(o) {
				YAHOO.util.Dom.get("dlgUserInfo").innerHTML = o.responseText;

				var handleCancel = function() {
				};
				
				var handleSubmit = function() {
				};
				
				var btns = [
					{ text: "增加", handler: handleSubmit, isDefault: true },
					{ text: "放弃", handler: handleCancel }
				];

				var cfg = {
					fixedcenter : true,
					constraintoviewport : true,
					visible : false, 
					width : "400px",
					buttons : btns
				}
				
				var dlg = new YAHOO.widget.Dialog('dlgUserInfo', cfg);
				dlg.setHeader("增加用户");

				dlg.render();
				dlg.show();
			},
			failure: function(o) {
				alert('用户信息模块加载失败' +  + YAHOO.lang.dump(o));
			}
		}
	);
}


其实可以将标题、按钮,大小等配置信息传入,这样每个页面可以显示稍微不同的对话框。

更进一步,利用这种机制,可以用一个对话框做到数据新增、修改、显示等三个常用功能,下
一步实现了这种方式我再把代码贴出来。

欢迎指正。
分享到:
评论

相关推荐

    YUI.rar_html_javascript YUI_yui_yui javascript

    1. **模块化设计**:YUI采用模块化的结构,允许开发者按需加载所需的组件,减少页面加载时间,提高性能。 2. **跨浏览器兼容性**:YUI经过精心设计,确保在主流浏览器上都能正常运行,包括IE、Firefox、Chrome、...

    yui 资源包

    1. **模块化**:YUI采用AMD(Asynchronous Module Definition)模块加载机制,允许异步加载和依赖管理,使得代码组织清晰,便于维护。 2. **响应式设计**:YUI提供了响应式设计工具,如Grids布局系统,能根据屏幕...

    yui 3.1.2 源码 6MB大小 0资源分

    YUI 3的设计目标是模块化和轻量化,它引入了模块系统,使得开发者可以根据需要只加载必要的组件,从而降低页面加载时间。在3.1.2版本中,这一特性得到了充分的体现。源码中的每个模块都是独立的,通过AMD...

    YUI3 dialog组件

    在YUI3中,首先需要通过`YUI().use()`方法加载Dialog相关的模块,例如: ```javascript YUI().use('dialog', function(Y) { // 在这里编写Dialog的代码 }); ``` 然后可以创建Dialog实例,指定其内容和属性: ```...

    yui_2.6.0r2

    YUI 2.6.0r2版本在当时的JavaScript社区中占有重要地位,它提供了大量的可重用模块,涵盖了DOM操作、事件处理、动画效果、Ajax交互、CSS样式管理、数据处理等多个领域。这个版本修复了之前的一些已知问题,增强了...

    YAHOO UI工具库及使用说明

    6. **用户界面组件**:YUI提供了各种UI组件,如日历(Calendar)、菜单(Menu)、对话框(Dialog)、按钮(Button)、滑块(Slider)等,这些组件可以方便地集成到网页中,提升用户体验。 **二、YUI的模块化特性** ...

    Packt.Yahoo.User.Interface.2.x.Cookbook

    书中可能会详细讲解如何快速引入YUI库到项目中,设置正确的加载顺序,以及如何利用YUI的模块化结构来组织代码,提高代码复用性。此外,它还会涉及如何使用YUI的事件系统,使页面元素间的交互更加流畅。 其次,关于...

    yahoo ui library

    YUI采用了模块化的设计,每个功能都被封装为一个模块,开发者可以根据项目需求按需加载,减少不必要的资源加载,提高页面性能。`YUI.use`方法用于加载所需的模块,同时保证了模块间的依赖关系得到正确处理。 八、...

    YUI3 实现overlay展开是tree,并且树节点可以拖拽-drag和drop

    首先,`Overlay`是`YUI3`中的一个基础组件,它提供了一种弹出式的窗口效果,可以用于创建模态对话框、提示信息等。`Overlay`可以通过设置其尺寸、位置、可见性等属性来定制,以满足不同的需求。 接着,我们要在`...

    Javascript 常见效果 雅虎

    7. **模块化开发**:YUI采用了模块化设计,允许开发者按需加载所需的功能,减少页面的加载时间。通过YUI Loader,可以自动化处理依赖关系,确保正确加载和执行脚本。 8. **兼容性**:考虑到JavaScript的跨浏览器...

    Test-120:YUI、JQueryUI、YASS 的 UI

    YUI的特点在于其模块化设计,开发者可以根据项目需求选择需要的模块,避免了不必要的资源加载,提高了性能。此外,YUI还支持CSS3和响应式设计,使得开发跨平台、适应不同设备的UI变得更加便捷。 接下来,jQueryUI是...

    DWZ帮助文档 PDF版

    DWZ框架具备良好的兼容性、模块化和扩展性,能够帮助开发者快速构建具有丰富交互功能的Web界面。 DWZ框架的设计思路着眼于提供一套简洁、高效、易于使用的前端开发解决方案。与其它JavaScript框架相比,DWZ的最大...

    Ajax的一些有用的小技巧.pdf

    - **MooTools**:MooTools是一个小巧而功能强大的JavaScript框架,它以简洁的语法和高度模块化的设计而受到开发者的喜爱。与Prototype类似,MooTools的核心语法也十分相似,但使用起来更为轻便,使得开发者能够在不...

    各种Ajax UI 很多很漂亮的代码

    这些库都有各自独特的优点,例如Dojo Toolkit提供全面的模块化开发,YUI注重性能和兼容性,而KnockoutJS专注于MVVM(Model-View-ViewModel)模式,方便数据绑定和动态界面更新。 在实际开发中,选择合适的Ajax UI库...

    15个JavaScriptWebUI库.pdf

    9. **Prototype UI**:基于Prototype和Script.aculo.us,包含多个模块,如旋转木马、模态窗口、阴影和右键菜单,每个模块可独立使用。 10. **Jitsu**:Jitsu提供了XML标记、页面编译、动画引擎和Ajax功能,简化了...

    JQuery基础、选择器.docx

    - **MooTools**:轻量级且模块化的框架,强调面向对象编程。 - **ExtJS**:主要创建前端用户界面,原为YUI扩展,现为付费库。 **jQuery的使用配置** 1. **获取jQuery**:可以从官网(http://jquery.com/)下载最新...

    前端JavaScript需要掌握的技能列表

    Dojo是一个用于构建高性能JavaScript应用程序的框架,其特点是轻量级、模块化: - **模块化设计**:按需加载所需的模块,减小应用程序体积。 - **数据可视化**:提供图表和其他可视化工具,帮助展示数据。 - **移动...

    JQuery基础、选择器.pdf

    - **MooTools**:轻量级且模块化的框架,强调面向对象的编程。 - **Dojo**:提供了一些其他库没有的独特功能,如离线存储和图标组件。 - **ExtJS**:主要关注前端用户界面的创建,最初是对YUI的扩展,但后来成为独立...

    谈谈我对Qt的理解.pdf

    此外,Qt提供了一系列的开发工具,如KDevelop、QDevelop、Qt Creator和qt-designer,以及在Eclipse中集成的插件,方便开发者进行图形化界面设计和代码编写。 Qt的核心机制包括对话框、窗体、窗体布局、槽和信号以及...

Global site tag (gtag.js) - Google Analytics