前言

JQuery EasyUI提供的组件包含功能强大的DataGrid,TreeGrid、面板、下拉组合等。用户能够组合使用这些组件,也能够单独使用当中一个。(使用的形式是以插件的方式提供的)

EasyUI体系结构

EasyUI全部的插件主要分为六大部分。Base基础、Layout布局、Menu&Button、Form表单、Window窗体等。从最基础的開始先掌握EasyUI基础部分。Base部分包括了八个基础插件分别为:

  1. parser(解析器)
  2. easyloader(载入器)
  3. draggable(拖动)
  4. droppable(放置)
  5. resizable(大小调整)
  6. pagination(分页)
  7. progressbar(进度条)
  8. searchbox(搜索框)

我们先从parser開始。

Parser(解析器)

解析器是easyui很重要的基础组件,在easyui中我们可以简单的通过class定义一个组件,从而渲染出很好的交互效果。就是通过parser进行解析的。parser会获取全部在指定范围内定义为easyui组件的class定义,而且依据后缀定义把当前节点解析渲染成特定的组件。

parser能够有两种用法:

1、$.parser.parse();不带參数,默认解析该页面中全部被定义为easyui组件的节点。
2、$.parser.parse('#cc');带一个jquery选择器,使用这样的方式我们能够单独解析局部的easyui组件节点。 

只是这里要说明的是这个jquery选择器必须是你解析组件的父级以上的节点。也就是说这个查找出来的节点相当于一个容器,它仅仅会解析容器里面的内容。

parser属性:

      

名称 类型 描写叙述 默认值
$.parser.auto boolean 定义是否自己主动解析easyui组件 true

 

名称 參数 描写叙述
$.parser.onComplete context 当语法解析完毕之后触发的event

依据上表$.parser.onComplete是easyui语法解析完毕之后触发的事件,这个事件是十分实用的。比如在加载一个页面时,页面并非立即就展现的,由于parser在dom加载完毕之后才会对整个页面进行解析,当页面组件使用较多的时候,完整的解析组件必然须要耗费较多的时间,这一过程可能就会出现短暂的界面混乱现象。解决的办法就是:利用onComplete事件再结合一个加载遮罩层就攻克了。

详细的实例能够看例如以下代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head><title>EasyUI基础之Parser</title><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/jquery.easyui.min.js"></script><script>function closes() {$("#Loading").fadeOut("normal", function () {$(this).remove();alert("数据载入完毕");});}var pc;$.parser.onComplete = function () {if (pc) {clearTimeout(pc);}pc = setTimeout(closes, 1000);}</script>
</head>
<html><body>
<div id='Loading'><image src='images/loading.gif'/><font color="#2bd4cd" size="4">页面正在载入中···</font>
</div>
</body>
</html>

上面的样例实际执行的效果是,当dom节点在解析的过程中,界面上会弹出类似"数据正在载入中",parser解析完毕之后,遮罩层就消失,正常显示页面内容(弹出数据载入完毕弹出框)。

Parser(解析器)应用场景

上面的学习中我们知道,easyui依据class就能正常的渲染页面都是靠parser。通常情况下我们在开发的时候并不会用到解析器。以下来看看神马时候我们须要用到解析器。

自己主动调用parser

最基本的运用场景,仅仅要我们书写对应的class,easyui就能成功的渲染页面,这是由于解析器在默认情况下,会在dom载入完毕的时候($(docunment).ready)被调用,并且是渲染整个页面。

手动调用parser

须要手动调用的情况是:当页面已经载入完毕,可是此时我们使用js生成的DOM中包括了easyui支持的class,而且我们也有将其渲染成easyui组件的需求。在这样的情况下手动调用parser就不可避免了。

以例如以下代码为例:

<div class="easyui-accordion" id="tt"><div title="title1">1</div>
<div title="title2">2</div>
</div>

当上述代码的生成在easyui渲染界面之后,因为easyui不会一直监听页面,所以该段代码并不会并渲染成“手风琴DIV”的样式,这时候就须要我们手动去结下了。只是这里需注意例如以下方面,上面也有提及。

  • 解析目标位指定DOM的全部子孙元素,不包好该DOM本身:因此正确的写法为:$parser.parser($('tt').parent()),并不是

    $.parser.parse($('#tt'));    
  • 尽量不要多次解析同一个DOM元素(ID):页面初始化就已经主动渲染过dom节点了,你再次手动解析该dom节点时该dom已经被parser重构,得到的DOM就并不是是你料想的结果,该方式应该尽量避免。

转载于:https://www.cnblogs.com/mfrbuaa/p/3776035.html

EasyUI基础入门之Parser(解析器)相关推荐

  1. 【音视频零基础入门 1】视频播放器原理、流媒体协议、封装格式、视频编码、音频编码

    [音视频零基础入门 1]视频播放器原理.流媒体协议.封装格式.视频编码 一.视频播放器原理 1.1 解协议 1.2 解封装 1.3 解码 1.4 视音频同步 二.流媒体协议 三.封装格式 四.封装格式 ...

  2. 〖Python零基础入门篇㊱〗- 装饰器与类的装饰器

    订阅 Python全栈白宝书-零基础入门篇 可报销!白嫖入口-请点击我.推荐他人订阅,可获取扣除平台费用后的35%收益,文末名片加V! 说明:该文属于 Python全栈白宝书专栏,免费阶段订阅数量43 ...

  3. ApiSix基础入门:协议解析-样例详解

    一 .http协议配置 1.反向代理测试 ①启动一个正常的web服务器 也可以使用已经安装的openresty #启动web服务器 默认80端口 /usr/local/openresty/bin/op ...

  4. EasyUI基础入门之Droppable(可投掷)

    怎么说呢Droppable这个单词究竟是什么意思,准确来说easyui作者究竟要表达什么意思,还是不大好拿捏的.只是没关系,没有必要纠结与这些细枝末节的东西,依据官网的demo效果,就简单的将之定义为 ...

  5. EasyUI基础入门之Pagination(分页)

    前言 对于一些企业级的应用来说(非站点),页面上最为基本的内容也就是表格和form了.对于类似于ERP这类系统来说数据记录比較大,前端表格展示的时候必需得实现分页功能了.恰巧EasyUI就提供了分页组 ...

  6. easyui js解析字符串_easyui的解析器Parser

    平时使用easyui做框架开发时,都知道easyui的模块组件能通过属性方法或js方法来渲染,本质上是通过parser解析器来处理实现的,因为多数情况下都是自动触发完成整个页面的解析,所以没有感觉到它 ...

  7. 零基础入门C 语言如何实现面向对象编程

    具体和抽象 具体:客观存在着的或在认识中反映出来的事物的整体,是具有多方面属性.特点.关系的统一: 抽象:从具体事物中被抽取出来的相对独立的各个方面.属性.关系等. 以 Person 为例:" ...

  8. Python 文本解析器

    一.实验介绍 1.1 实验内容 讲解一个使用 Python 来解析纯文本生成一个 HTML 页面的小程序. 将学习和实践以下知识点: Python 基本语法 HTML 标记语言 1.2 实验知识点 P ...

  9. Python爬虫BS4库的解析器正确使用方法

    bs4库之所以能快速的定位我们想要的元素,是因为他能够用一种方式将html文件解析了一遍 ,不同的解析器有不同的效果.下文将一一进行介绍. bs4解析器的选择 网络爬虫的最终目的就是过滤选取网络信息, ...

  10. Python 实现文本解析器

    Python 实现文本解析器 一. 内容介绍 本节实验我们学习使用 Python 来解析纯文本文件,并生成 HTML 页面.本节实验只是一个简单实现,支持了较少部分的 Markdown 语法,但通过实 ...

最新文章

  1. web开发的一些心得
  2. pytorch crossentropy为nan
  3. 【Python-ML】SKlearn库决策树(DecisionRegression) 使用
  4. 两个向量组的秩相等说明什么_解析几何初步:向量与坐标(一)
  5. Git之删除本地无用分支
  6. 干掉搜狗输入法云代理SogouCloud.exe
  7. linux统计某个目录大小,Linux下统计某个目录的文件个数(转)
  8. ROADS POJ - 1724(最短路+邻接表+dfs)
  9. 一些python函数及其用法
  10. php 虚拟空间,什么是php虚拟主机?
  11. 快速pow和sqrt的小技巧 hdu4282
  12. 设置cookie,跨域取值
  13. 从gb2py.idx中获取一个汉字的拼音首字母
  14. 【emWin】例程十:bmp图片显示
  15. php的原子操作,php实现含有redis命令的原子操作
  16. c语言系统主函数流程图,c语言流程图【调解方式】
  17. 计算机应用基础周记,2800字计算机应用基础实习报告范文.doc
  18. 代理服务器的工作原理是什么?
  19. linux网卡ens160显示不出来,修改Centos7的网卡名称ens160、eno192改为eth0、eth1
  20. 代码统计工具cloc使用

热门文章

  1. 编译OpenJDK8:configure error /usr/lib64/ccache/gcc is a symbolic link to ccache
  2. 中国税负68%,世界排名12
  3. VirtualBox中的WIN7开启Aero模式要谨慎
  4. 摄像头实时帧率_【每日新闻】思特威全新发布130W像素全局快门图像传感器SC133GS;三星Galaxy Z Flip或仅配备12MP后置摄像头...
  5. mysql教程 触发器_实现MySQL触发器的实际操作步骤
  6. C# NPOI NPOI加载 Excel加载 Excel读取 Excel写入 Excel修改 保证完整能用
  7. 华为怎么授权位置服务器,华为手机设置位置服务器
  8. MySQL免安装版 图文教程【5.7版本,纯净版win7安装】
  9. docker中 system limit for_java中的split函数的坑
  10. java给list排序_java 怎么将List里面数据排序