EasyUI-Parser(解析器)
在javascript中parse() 方法可解析一个日期时间字符串,并返回 1970/1/1 午夜距离该日期时间的毫秒。
用法如下:
Date.parse(datestring)
该方法是 Date 对象的静态方法。一般采用 Date.parse() 的形式来调用,而不是通过 dateobject.parse() 调用该方法。
注释:Date.parse() 是 Date 对象的静态方法。
示例:
<script type=”text/javascript”>
var d = Date.parse(“Jul 8, 2005”)
document.write(d)
</script>
转换成年:
<script type=”text/javascript”>
var minutes = 1000 * 60
var hours = minutes * 60
var days = hours * 24
var years = days * 365
var t = Date.parse(“Jul 8, 2005”)
var y = t/years
document.write(“It’s been: ” + y + ” years from 1970/01/01″)
document.write(” to 2005/07/08!”)
</script>
下面看看easyui的用法:
使用方法
-
$.parser.parse(); // 解析所有页面
-
$.parser.parse(‘#cc’); // 解析指定节点
属性
属性名 |
属性值类型 |
描述 |
默认值 |
$.parser.auto |
boolean |
定义是否自动解析EasyUI组件。 |
true |
事件
事件名 |
事件参数 |
描述 |
$.parser.onComplete |
context |
在解析器完成解析操作的时候触发。 |
方法
方法名 |
方法参数 |
描述 |
$.parser.parse |
context |
解析EasyUI组件。 |
详细解说:
parser,故名意思,就是解析器的意思,别看他只有那么几行代码,jQuery Easyui 能够根据class就能正常渲染页面全靠它了。一般情况下,我们并用不到解析器,本文主要讨论一下,什么情况下会用到它,如何使用。
自动调用parser:
在页面中,只要书写相应的class,Easyui就可以成功渲染页面,这是因为解析器在默认情况下,会在文档装载完成的时候($(document).ready)被调用一次,而且是渲染整个页面。
手动调用parser:
有些童鞋反映,当页面装载完后,如果用javascript生成的DOM中包含了Easyui支持控件的class,比如说,用javascript生成了以下代码:
<div class="easyui-accordion" id="tt"> <div title="title1">1</div> <div title="title2">2</div> </div>
虽然页面上有这样的DOM了,但是没有被渲染为Easyui的accordion插件,原因很简单,Easyui并不会一直监听页面,所以不会主动渲染,这时候就需要手工调用Easyui的parser进行解析了。不过手工调用需要注意以下几点:
(1) 解析目标为指定DOM的所有子孙元素,不包含这个DOM自身:
比如上面代码生成的HTML,id=”tt”是我们想要的手风琴DIV,像下面代码去手工解析的话是得不到你想要的结果的:
$.parser.parse($('#tt'));
道理很简单,parser只渲染tt的子孙元素,并不包括tt自身,而它的子孙元素并不包含任何Easyui支持的控件class,所以这个地方就得不到你想要的手风琴效果了,应该这样写:
$.parser.parse($('#tt').parent());
渲染tt的父节点的所有子孙元素就可以了,个人觉得通过jQuery的parent()方法是最安全不过的了,不管你的javascript输出了什么DOM,直接渲染其父节点就可以保证页面能被正确解析。
(2) 某些组件无法多次解析同一个DOM元素:
如果页面上本身就有tt元素:
<div class="easyui-accordion" id="tt"> </div>
页面装载完,你通过脚本向tt元素append两个子DIV,然后解析:
$('#tt').append('<div title="title1">1</div><div title="title2">2</div>') $.parser.parse($('#tt').parent());
不能认为为你会得到一个满意的accordion,你什么也得不到,因为页面初始化的时候parser就主动渲染过tt元素,这时候tt已经被parser重构,你再到脚本中append,得到的DOM结构,并不是你预想的结果,所以避免这种用法。
声明: 除非转自他站(如有侵权,请联系处理)外,本文采用 BY-NC-SA 协议进行授权 | 嗅谱网
转载请注明:转自《EasyUI-Parser(解析器)》
本文地址:http://www.xiupu.net/archives-2617.html
关注公众号:
微信赞赏
支付宝赞赏