jquery easyui tree的源代码?没有

这里说的源代码,是指未加密,且没做过让人看不懂的混淆的代码。

如果你在官网上下载了整套easyui,会得到个压缩包,里面有个src目录,这就是他开放了源代码的部分组件。里面没有tree

当然,也没有datagrid,treegrid等更复杂的组件。

不过,在plugins目录下,就有这几个。但打开后会发现,里面的代码的变量全是这样的,_1,_2,_3a,_4e….

而且easyui的整个JS,是 jquery.easyui.min.js,没有类似jquery的不带min的文件,也就是说他对上面这些个核心控件,是报着并不怎么愿意开放源码的心态的。

其实easyui做了一些比较额外的工作,比如允许用户在html中定义组件的属性。这样他自己就要去判断用户是否在文档中直接定义了属性,然后再去读出来,这样的设定,在有大量属性需要设置时,会把html部分打得很乱,反而不美;比如自动生成组件,也就是加入一个easyui-tree的样式就会自动生成一个tree控件。其实这些工作都可以让用户自己去完成,有时候easyui并不能控制组件初始化的先后顺序,还是得取消自动初始化,改为JS手动来————比如,一个在tab里面的datagrid,通常会出现高度为0的情况,因为datagrid初始化的时候,tab并没有初始化,他就会自认为高度是0.。。

出于这样那样的原因,我打算把easyui tree部分的源码提取出来,改成合理的变量名,加上注释,而且加入依赖其他组件的代码(比如parser)。到时候,如果我只想用easyui的tree组件,就不用引入整个jquery.easyui.min.js了,毕竟有300多K呢。

如果我提取成功,我是发出来呢,还是不发呢?发出来肯定对不起easyui,毕竟使用了他们做的这么强大的tree控件。

等我试试,以后更新此文。

2015-6-3更新:

easyui tree依赖于easyui parser,但实际上只是依赖于parser里面的parseOptions函数,复制过来作为一个内置函数,然后改掉相应调用的地方,就可以独立使用这个JS了。

需要注意的是,在单独只引入这个JS的情况下,自动初始化tree的功能就没有了(也就是加上easyui-tree的样式后,并不会自动生成一个tree),因为自动初始化实际上是parser组件的功能。但庆幸的是,我更喜欢自己用JS初始化。

另外,easyui tree可以启用树节点拖拽,但需要引入另两个JS文件,draggable和droppable(同样在plugin目录下),这两个我觉得没必要复制到tree.js里面,需要拖拽的时候再引用,毕竟需要拖拽的机会不多。

未完待续

发表评论

电子邮件地址不会被公开。