easyui 初体验

简介

jQuery EasyUI是一组基于jQuery的UI插件集合体,而jQuery EasyUI的目标就是帮助web开发者更轻松的打造出功能丰富并且美观的UI界面。开发者不需要编写复杂的javascript,也不需要对css样式有深入的了解,开发者需要了解的只有一些简单的html标签。

jQuery EasyUI是基于JQuery的一个前台ui界面的插件,功能相对没extjs强大,但页面也是相当好看的,同时页面支持各种themes以满足使用者对于页面不同风格的喜好。一些功能也足够开发者使用,相对于extjs更轻量。

 

目录结构

 

demo文件夹:一些示例,(正式项目中删除)

 

locale:一些不同语言的文件,其实是对easyui的扩展。(只须保留你想用的语言相对应的文件)

 

plugins:easyui提供的各个功能的文件。(使用方式二加载必须保留,方式一加载可以删除)

 

src :各个插件的源文件,不是全部,其实有些功能不是开源的,是商业授权,因此没有源文件。(可以删除)

 

themes:主题,就是css文件和要用到的图标文件,里边提供5种风格。(可以只保留要使用的风格,并且具体到一个风格里,又分为两部分:easyui.css和其它所有css。easyui.css是其它所有css的合并后结果,在不同的加载方式中只会用到一部分。)

 

easyloader.js:暂且称之为加载器文件。在使用方式一加载也不会被使用。

 

jquery.easyui.min.js:easyui的主文件。它是plugins下所有文件合并后的结果,因些它在使用方式一加载必须保留,方式二加载不会使用到,可以删除。

 

jquery.min.js:jquery文件,easyui是基于jquery的,因此是必须的。

 

 

 

其它的是一些授权文件和更新日志之类的,就不说了。

 

两种引用加载方式

 

1:饿汉式加载

<link rel="stylesheet" type="text/css" href="easyui/themes/default/easyui.css">

<script type="text/javascript" src="easyui/locale/easyui-lang-zh_CN.js"></script>

<link rel="stylesheet" type="text/css" href="easyui/themes/icon.css">

<script type="text/javascript" src="easyui/jquery.min.js"></script>

<script type="text/javascript" src="easyui/jquery.easyui.min.js"></script>

这种也是最常用的方式。这种方式会加载easyui提供的所有功能。

 

2:懒汉式加载

<link rel="stylesheet" type="text/css" href="easyui/themes/icon.css">

<script type="text/javascript" src="easyui/jquery.min.js"></script>

<script type="text/javascript" src="easyui/jquery.easyloader.js"></script>

这种方式就相对比较懒,只会在使用特定功能的时候才会加载相对应的plugins下的js和风格里css文件,而其它不使用的功能对应的js和css永远不会被下载。而easyloader.js就是负责用于加载各个插件的。

 

不同加载方式产生问题

 

风格

方式1的加载我们通过引用 themes/default/easyui.css来指定,引用不同风格下的easyui.css来使用不同的风格,但是方式2我们并没用指定风格?如何指定风格?

不指定时,默认是引用default风格下的样式,就会去下载该风格下的样式。如果你使用方式2时且没有指定风格,不存在default风格就会出现问题。

当然我们可以在页面加载后通过

easyloader.theme = "gray";

来指定风格。

语言

同样的对于语言文件,对于方式1我们可以直接在页面引用jquery.easyui.min.js的后面引用。

 

<script type="text/javascript" src="easyui/locale/easyui-lang-zh_CN.js"></script>

但是这对于方式2的加载,这是不起作用的。

 

因些语言文件其实是对各个插件默认配置的修改,当插件都还没有加载时,语言文件对它的修改当然是不会起作用的。

 

因此我们可以通过下面

 

easyloader.locale = "zh_CN";

来指定使用何种语言。

 

两种渲染方式

 

1:javascript方式

<input id="cc" style="width:200px" />

$('#cc').combobox({

        url: ...,

        required: true,

        valueField: 'id',

        textField: 'text'

});

 

2:html标记方式

<input id="cc" class="easyui-combobox" name="dept" 

data-options="valueField:'id',textField:'text',url:'get_data.php'" /> 

 

注:具网上传言,html标记方式相对JS加载方式而言,(在IE)渲染性能差些。

这个我还没感觉到,只是个人觉得JS加载方式相对html标记方式要更加灵活,你可以在DOM加载完毕之后再去渲染控件,也可以在使用到某个控件时,再去渲染。

由于EasyUI是基于jQuery的,而上面2种方式使用到了jQuery的选择器。根据给定ID去匹配元素比根据给定的class去匹配元素性能更佳。

所以选择哪一种,你懂的。。。。。。

 

说说IE兼容性问题

 

EasyUI本身控件功能是很不错,效果也漂亮,使用方式也简单,但是对于IE不同版本的兼容性不是很好,性能问题尤其突出,所以,如果你是用IE浏览器,那么就不建议使用EasyUI。

如果你是在项目中使用EasyUI,又要兼容IE8及以下浏览器。那么可以搭配

EasyUI 1.3.1+EasyUI 1.3.2+jQuery 1.8.x

来使用(本人在实际项目中使用过,期间发现较少问题,总的情况还算稳定,就是页面控件渲染是硬伤,网上针对部分EasyUI控件的优化办法也有一些,聊胜于无,总的效果不是很理想)。

注:jQuery Easy UI从1.3.3到现在的最新版本1.3.4都是基于jQuery2.0的,而jQuery2.0是不支持IE6、7、8的了,所以jQueryEasyUI1.3.3后的版本都不支持IE6、7、8。如果想继续兼容IE8以前的版本,只能使用jQueryEasyUI1.3.2或以前的版本了。另外jQuery1.9对IE8兼容性不是很好,所以不建议选择。

 

插件列表如下:

分类

插件

Base(基础)

  • Parser 解析器
  • Easyloader 加载器
  • Draggable 可拖动
  • Droppable 可放置
  • Resizable 可调整尺寸
  • Pagination 分页
  • Searchbox 搜索框
  • Progressbar 进度条
  • Tooltip 提示框

Layout(布局)

  • Panel 面板
  • Tabs 标签页/选项卡
  • Accordion 折叠面板
  • Layout 布局

Menu(菜单)与 Button(按钮)

  • Menu 菜单
  • Linkbutton 链接按钮
  • Menubutton 菜单按钮
  • Splitbutton 分割按钮

Form(表单)

  • Form 表单
  • Validatebox 验证框
  • Combo 组合
  • Combobox 组合框
  • Combotree 组合树
  • Combogrid 组合网格
  • Numberbox 数字框
  • Datebox 日期框
  • Datetimebox 日期时间框
  • Calendar 日历
  • Spinner 微调器
  • Numberspinner 数值微调器
  • Timespinner 时间微调器
  • Slider 滑块

Window(窗口)

  • Window 窗口
  • Dialog 对话框
  • Messager 消息框

DataGrid(数据网格)与 Tree(树)

  • Datagrid 数据网格
  • Propertygrid 属性网格
  • Tree 树
  • Treegrid 树形网格

 

以及几个常用的扩展插件

1 autocomplete自动完成控件,类似百度搜索框
2 lookup控件,这是一个比较中国化的东西,企业应用中使用的频率很高
3 daterange这个是国外网站上找到了,很炫的一款控件,略做了一些修改并引入

对于EasyUI几个常用控件的源码分析,学习和优化,可以去这个网址看看。

http://www.easyui.info/

转载于:https://www.cnblogs.com/birdwawe/p/4062066.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
2016-1-31 更新 1、使用时不再需要显示调用followCustomHandle方法,即可生效扩展属性。 2013-9-3 更新 1、$.showWindow 和 $.showModalDialog 在useiframe=true时,对窗体body增加遮罩控制。 2、easyui.tabs的add方法当useiframe=true时,增加遮罩控制。 3、toolbar增加url属性,可以通过请求后台数据构建。 4、增加mask(遮罩)扩展。 2013-8-26 更新 1、tree增加支持类标准数据格式加载,具体看demo或jquery.easyui.tree.extend.js文件开头说明。 2、修复datagrid在rowediting编辑风格时点击“确定”按钮无法提交问题。 3、datagrid和treegrid增加getEditingRows方法,用来获取所有正在编辑的行。 4、修复tabs.add方法,当useiframe=true时, iframe的高度改为100%。 5、修复当tabs使用iframe时,右键菜单刷新报错问题。 6、增加combotree对简单数据格式和类标准数据格式的加载,具体参考jquery.easyui.tree.extend.js文件开头说明。 7、修复datagrid.onConfirmEdit事件默认实现bug。 8、增加treegrid.onConfirmEdit事件。 2013-8-12 更新 1、修复combobox在级联操作时,传递的swd参数值为null,而不是选中值。 2、datagrid的addEventListener 方法增加对事件onExpandRow和onCollapseRow的控制。 3、tree增加自定义属性 attributes,用于简单数据加载时,指定那些字段当作node的attributes属性使用。 4、combobox增加 getSelected 方法, 返回选中item的data值。 5、combogrid增加 getSelected 方法,返回选中item的data值。 6、datagrid增加 getAllExpandRowIndex 方法,用于在detailView视图下获取当前页已展开行的索引。 7、datagrid增加 getExpandRowIndex 方法,用于在detailView视图下获取当前页第一个展开行的索引。 8、datagrid增加 fixDetailRowWidth 方法,用于detailView视图下修改rowDetial中组件宽度。 9、getAllExpandRowIndex、getExpandRowIndex、fixDetailRowWidth 这三个方法联合使用可解决detailView视图下列拖拽时显示错位问题。 10、修复datagrid 的rowEditing编辑风格在没有数据的datagrid中增加数据后,再编辑时无法显示的问题。 11、datagrid增加自定义事件 onConfirmEdit , 用于rowEditing编辑风格点击“确定”按钮时触发。当事件返回false时终止endEdit方法调用。 2013-7-31 更新 1、$.showWindow、$.showModalDialog 这两个方法增加返回值,返回值指向当前弹出窗的引用。 2、移除根据$.browser.msie判断浏览器版本。 2013-7-18 更新 1、menu、datagrid、combo、combobox、panel、tabs、tree、treegrid 增加 addEventListener 方法。 2、修复menu、datagrid、combo、combobox、panel、tabs、tree、treegrid 因事件注册造成多次重复渲染的问题(包括多次请求后台数据)。 3、移除datagrid 的rowContextMenu菜单项默认事件替换功能。 4、删除datagrid rowContextMenu默认菜单中的增加、编辑、导出菜单项。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值