项目中加载一个树结构代码如下

        //加载树
function LoadTree() {
var url = "../Ajax/StationTree.ashx?showVirtual=1";
$('#tree').tree({
url: url + '&pid=0&nodetype=root',
animate: true,
dnd: true, //是否拖放功能
loadFilter: function (data) {
if (data.id) {
return data.id;
}
else {
return data;
}
},
onBeforeExpand: function (node, param) {
$('#tree').tree('options').url = url + "&pid=" + node.id + '&nodetype=' + node.attributes.nodetype; // change the url
},
onClick: function (node) {
loadData();
}
});
}

运行之后发现在Chrome下完好流畅运行,但在IE下简直惨不忍睹。

没点击一个节点响应时间都要两秒中。

仔细排查后,发现是因为开启了拖放。

禁用拖放(dnd:false) 后 性能立马上来了。

        //加载树
function LoadTree() {
var url = "../Ajax/StationTree.ashx?showVirtual=1";
$('#tree').tree({
url: url + '&pid=0&nodetype=root',
animate: true,
dnd: false, //是否拖放功能
loadFilter: function (data) {
if (data.id) {
return data.id;
}
else {
return data;
}
},
onBeforeExpand: function (node, param) {
$('#tree').tree('options').url = url + "&pid=" + node.id + '&nodetype=' + node.attributes.nodetype; // change the url
},
onClick: function (node) {
loadData();
}
});
}

最后奉上easyui tree 基本属性

名称

类型

说明

默认值

url

string

获取远程数据的 URL 。

null

method

string

获取数据的 http method 。

post

animate

boolean

定义当节点展开折叠时是否显示动画效果。

false

checkbox

boolean

定义是否在每个节点前边显示 checkbox 。

false

cascadeCheck

boolean

定义是否级联检查。

true

onlyLeafCheck

boolean

定义是否只在叶节点前显示 checkbox 。

false

dnd

boolean

定义是否启用拖放。

false

data

array

加载的节点数据。

null

事件

很多事件的回调函数需要 'node' 函数,它包含下列特性:

  • id:绑定到节点的标识值。
  • text:显示的文字。
  • checked:是否节点被选中。
  • attributes:绑定到节点的自定义属性。
  • target:目标的 DOM 对象。

名称

参数

说明

onClick

node

当用户点击一个节点时触发, node 参数包含下列特性:
id:节点的 id
text:节点的文字
checked:节点是否被选中
attributes:节点自定义属性
target:被点击目标的 DOM 对象

onDblClick

node

当用户双击一个节点时触发。

onBeforeLoad

node, param

当加载数据的请求发出前触发,返回 false 就取消加载动作。

onLoadSuccess

node, data

当数据加载成功时触发。

onLoadError

arguments

当数据加载失败时触发, arguments 参数与 jQuery.ajax 的'error' 函数一样。.

onBeforeExpand

node

节点展开前触发,返回 false 就取消展开动作。

onExpand

node

当节点展开时触发。

onBeforeCollapse

node

节点折叠前触发,返回 false 就取消折叠动作。

onCollapse

node

当节点折叠时触发。

onCheck

node, checked

当用户点击 checkbox 时触发。

onBeforeSelect

node

节点被选中前触发,返回 false 就取消选择动作。

onSelect

node

当节点被选中时触发。

onContextMenu

e, node

当右键点击节点时触发。

onDrop

target, source, point

当节点被拖拽施放时触发。
target:DOM 对象,拖放的目标节点。
source:源节点。
point:表示拖放操作,可能是值是: 'append'、'top' 或 'bottom'。

onBeforeEdit

node

编辑节点前触发。

onAfterEdit

node

编辑节点后触发。

onCancelEdit

node

当取消编辑动作时触发。

方法

名称

参数

说明

options

none

返回树的 options。

loadData

data

加载树的数据。

getNode

target

获取指定的节点对象。

getData

target

获取指定的节点数据,包括它的子节点。

reload

target

重新加载树的数据。

getRoot

none

获取根节点,返回节点对象。

getRoots

none

获取根节点们,返回节点数组。

getParent

target

获取父节点, target 参数指节点的 DOM 对象。

getChildren

target

获取子节点, target 参数指节点的 DOM 对象。

getChecked

none

获取所有选中的节点。

getSelected

none

获取选中的节点并返回它,如果没有选中节点,就返回 null。

isLeaf

target

把指定的节点定义成叶节点, target 参数表示节点的 DOM 对象。

find

id

找到指定的节点并返回此节点对象。

select

target

选中一个节点, target 参数表示节点的 DOM 对象。

check

target

把指定节点设置为勾选。

uncheck

target

把指定节点设置为未勾选。

collapse

target

折叠一个节点, target 参数表示节点的 DOM 对象。

expand

target

展开一个节点, target 参数表示节点的 DOM 对象。

collapseAll

target

折叠所有的节点们。

expandAll

target

展开所有的节点们。

expandTo

target

从指定节点的根部展开。

append

param

追加一些子节点们到一个父节点, param 参数有两个特性:
parent:DOM 对象,追加到的父节点,如果没有分配,则追加为根节点。
data:数组,节点们的数据。

toggle

target

切换节点的展开/折叠状态, target 参数表示节点的 DOM 对象。

insert

param

在指定节点的前边或后边插入一个节点, param 参数包含下列特性:
before:DOM 对象,前边插入的节点。
after:DOM 对象,后边插入的节点。
data:对象,节点数据。

remove

target

移除一个节点和它的子节点们, target 参数表示节点的 DOM 对象。

pop

target

弹出一个节点和它的子节点们,此方法和 remove 一样,但是返回了移除的节点数据。

update

param

跟心指定的节点, param 参数有下列特性:
target(DOM 对象,被更新的节点)、id、text、iconCls、checked、等等。

enableDnd

none

启用拖放功能。

disableDnd

none

禁用拖放功能。

beginEdit

nodeEl

开始编辑节点。

endEdit

nodeEl

结束编辑节点。

cancelEdit

nodeEl

取消编辑节点。

Easyui tree 开启拖放后 在IE下 性能惨不忍睹的更多相关文章

  1. 数据网格和树-EasyUI Datagrid 数据网格、EasyUI Propertygrid 属性网格、EasyUI Tree 树、EasyUI Treegrid 树形网格

    EasyUI Datagrid 数据网格 扩展自 $.fn.panel.defaults.通过 $.fn.datagrid.defaults 重写默认的 defaults. 数据网格(datagrid ...

  2. EasyUI Tree判断节点是否是叶

    方法1:  $('#domaincatalog').tree('isLeaf', node.target); 返回true或false ,true表示是叶节点, false即不是 方法2:官方文档中: ...

  3. easyui Tree模拟级联勾选cascadeCheck,节点选择,父节点自动选中,节点取消,父节点自动取消选择,节点选择,所有子节点全部选择,节点取消,所有子节点全部取消勾选

    最近项目中用到easyui tree,发现tree控件的cascadeCheck有些坑,不像miniui 的tree控件,级联勾选符合业务需求,所以就自己重新改写了onCheck事件,符合业务需求.网 ...

  4. [转]easyui tree 模仿ztree 使用扁平化加载json

    原文地址:http://my.oschina.net/acitiviti/blog/349377 参考文章:http://www.jeasyuicn.com/demo/treeloadfilter.h ...

  5. Jquery easyui tree的使用

    这个ui用的一切都是json数据.树也是如此! 后台需要返回与格式匹配的json数据才能正确加载树. 页面定义一个ui: <ul id="messageInfoAddTree" ...

  6. EasyUI –tree、combotree学习总结

    EasyUI –tree.combotree学习总结 一.   tree总结 (一).tree基本使用 tree控件是web页面中将数据分层一树形结构显示的. 使用$.fn.tree.defaults ...

  7. IIS开启伪静态后html静态页面无法访问的解决方法

    IIS开启伪静态后,发现原本存在的html静态页面无法访问了,显示的404错误.网上查了下,是因为实现伪静态就是使用 URLRewriter 来映射后缀,会把asp等动态页面映射成html,但是原来存 ...

  8. easyui tree 的数据格式转换

    一般用来储存树数据的数据库表都含有两个整型字段:id pid,所以我们查询出来的List一般是这样的(约定pId为-1的节点为根节点): var serverList = [ {id : 2,pid ...

  9. 从数据库读取数据并动态生成easyui tree构结

    一. 数据库表结构 二.从后台读取数据库生成easyui tree结构的树 1.TreeNode树结点类(每个结点都包含easyui tree 的基本属性信息) import java.io.Seri ...

随机推荐

  1. Linux下的命令行上网

    对于网页浏览器现在大多数人用links/elinks,对了,还有个老牌一点的文本浏览器Lynx,links/elinks也是从Lynx中fork出来的. 以上所说的虽然能字符界面来浏览网页,但是不能显 ...

  2. 安装GeoIP数据库

    1.安装GeoIP数据库 cd /usr/local/logstash/etc curl -O "http://geolite.maxmind.com/download/geoip/data ...

  3. HDU 4649 Professor Tian

    Professor Tian Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) T ...

  4. Python的ASCII, GB2312, Unicode , UTF-8 相互转换

    ASCII 是一种字符集,包括大小写的英文字母.数字.控制字符等,它用一个字节表示,范围是 0-127 Unicode分为UTF-8和UTF-16.UTF-8变长度的,最多 6 个字节,小于 127 ...

  5. hdu 3954 Level up(线段树)

    题目链接:hdu 3954 Level up 题目大意:N个英雄,M个等级,初始等级为1,给定每一个等级须要的经验值,Q次操作,操作分两种,W l r x:表示l~r之间的英雄每一个人杀了x个怪物:Q ...

  6. Linux 文件操作——系统调用和标准I/O库

    一.什么是文件 在讲述文件操作之前,我们首先要知道什么是文件.看到这个问题你可能会感觉到可笑,因为对于用过计算机的人来说,文件是最简单不过的概念了,例如一个文本是一个文件,一个work文档是一个文件等 ...

  7. C 语言中实现数据与方法的封装

    在 C 语言中可以用结构体代替类,用函数指针代替成员方法,实现数据成员与成员方法的封装,在客户端写出的程序与 C++ 类似,唯一的不同是 C 语言中调用函数指针成员时必须将本对象的地址传给函数,因为 ...

  8. JS Encoding and Decoding

    //charator Str to Hex function strToHex(str) { var rs = ""; for (var i = 0; i < str.len ...

  9. EF查询数据库框架的搭建

    一个简单的EF查询框架除了运行项目外,大概需要5个类库项目,当然这个不是一定要这样做,这可以根据自己的需要设置有多少个项目.这里介绍的方法步骤只适合EF零基础的人看看就是了. 在开始之前,先建立一个运 ...

  10. iOS中的下载管理器(支持断点续传)

    在空闲时间自己编写了一个简单的iOS下载管理器.该管理器实现如下功能: 1.能够支持正常的下载,暂停,继续操作. 2.支持断点续传,实现暂停执行继续操作后,依然能正常将文件下载完成. 3.实现实时状态 ...