EasyUI基础入门之Parser(解析器)

摘要:
JQueryEasyUI提供的序言组件包括强大的DataGrid、TreeGrid、面板、下拉组合等。从最基本的开始,掌握EasyUI的基本部分。它通过解析器进行解析。解析器可以用两种方式:1。解析器parse();如果没有参数,默认情况下将解析此页面中定义为easyui组件的所有节点。从上述Parser应用场景的研究中我们知道,easyui通常可以根据类来呈现页面。在这种情况下,手动调用解析器是不可避免的。

前言

     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.autoboolean定义是否自动解析easyui组件true

 

名称参数描述
$.parser.onCompletecontext当语法解析完成之后触发的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="http://t.zoukankan.com/js/jquery.min.js"></script>
    <script type="text/javascript" src="http://t.zoukankan.com/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='http://t.zoukankan.com/images/loading.gif'/>
    <font color="#2bd4cd" size="4">页面正在加载中···</font>
</div>
</body>
</html>

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

                                                                                       EasyUI基础入门之Parser(解析器)第1张

Parser(解析器)应用场景

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

自动调用parser

        最主要的运用场景,只要我们书写相应的class,easyui就能成功的渲染页面,这是因为解析器在默认情况下,会在dom加载完成的时候($(docunment).ready)被调用,而且是渲染整个页面。

 手动调用parser

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

         以如下代码为例:

<div   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就并非是你料想的结果,该方式应该尽量避免。

免责声明:文章转载自《EasyUI基础入门之Parser(解析器)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇keepalived模式+DNS负载均衡C#运行批处理或者bat文件并且得到输出下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

vue中dom元素和组件的获取

Vue中获取DOM元素 <div id="app"> <input type="button" value="获取元素" @click="getElement"> <h3 ref="myh3">今天天气真好啊</h3> </div> <...

DOM操作元素

DOM 操作元素 JavaScript的DOM操作可以改变网页内容、结构和样式。我们可以利用DOM操作元素来改变元素里面的内容、属性等。 DOM操作元素: 一、操作元素:(一)innerText 、(二)innerHTML 二、操作常见元素属性:src、href、title、alt等; 三、操作表单元素属性:type、value、disabled等; 四...

vue源码实现的整体流程解析

一、前言 最近一直在使用vue做项目,闲暇之余查阅了一些关于vue实现原理的资料,一方面对所了解到的知识做个总结,另外一方面希望能对看到此文章的同学有所帮助。本文如有不足之处,还请过往的大佬批评指正。 二、vue实现原理概述 vue作为一个前端渐进式的MVVM开发库,将广大的前端劳苦大众从DOM操作中解放出来;说到vue的实现原理,大体可分为三个要素: 1...

JQuery中的DOM操作

内容摘录自锋利的JQuery一书 一. DOM操作的分类 一般来说,DOM操作分为3个方面,即DOM Core(核心)、HTML-DOM和CSS-DOM。 1. DOM Core DOM Core并不专属于javascript,任何一种支持DOM的程序设计语言都可以使用它。它的用途并非仅限于处理网页,也可以用来处理任何一种使用标记语言编写出来的文档,如XM...

React事件机制

一、是什么 React基于浏览器的事件机制自身实现了一套事件机制,包括事件注册、事件的合成、事件冒泡、事件派发等 在React中这套事件机制被称之为合成事件 合成事件(SyntheticEvent) 合成事件是 React模拟原生 DOM事件所有能力的一个事件对象,即浏览器原生事件的跨浏览器包装器 根据 W3C规范来定义合成事件,兼容所有浏览器,拥有与浏...

dom 绑定数据

一、绑定/修改 .jQuery修改属性值,都是在内存中进行的,并不会修改 DOM 1. 对象绑定$(selector).data(name) $("#form").data("name") 2. dom 绑定 $.data(element,name, val); jQuery.data($("#form")[0], "testing", 123); 3....