easyui 键盘控制tree 上下
$.extend($.fn.tree.methods, {
highlight: function(jq, target){
return jq.each(function(){
$(this).find('.tree-node-hover').removeClass('tree-node-hover');
$(target).addClass('tree-node-hover');
})
},
nav: function(jq){
return jq.each(function(){
var t = $(this);
t.attr('tabindex',0);
t.unbind('.tree').bind('keydown.tree', function(e){
var curr = getCurr();
if (!curr.length){return}
if (e.keyCode == 40){ // down
var li = getNext(curr);
if (li.length){
t.tree('highlight', li[0]);
}
} else if (e.keyCode == 38){ // up
var li = getPrev(curr);
if (li.length){
t.tree('highlight', li[0]);
}
} else if (e.keyCode == 13){
t.tree('select', curr[0]);
} else if (e.keyCode == 39){ // right
if (!t.tree('isLeaf', curr[0])){
t.tree('expand', curr[0]);
}
} else if (e.keyCode == 37){ // left
if (!t.tree('isLeaf', curr[0])){
t.tree('collapse', curr[0]);
}
}
e.preventDefault();
}).bind('mouseover.tree', function(e){
var node = $(e.target).closest('div.tree-node');
if (node.length){
t.find('.tree-node-hover').each(function(){
if (this != node[0]){
$(this).removeClass('tree-node-hover');
}
})
}
});
function getCurr(){
var n = t.find('.tree-node-hover');
if (!n.length){
n = t.find('.tree-node-selected');
}
return n;
}
function getNext(curr){
var n = $();
var node = t.tree('getNode', curr[0]);
if (t.tree('isLeaf', node.target)){
n = curr.parent().next().children('div.tree-node');
if (!n.length){
var p = t.tree('getParent', curr[0]);
if (p){
n = $(p.target).parent().next().children('div.tree-node');
}
}
} else {
if (node.state == 'closed'){
n = curr.parent().next().children('div.tree-node');
} else {
var cc = t.tree('getChildren', curr[0]);
if (cc.length){
n = $(cc[0].target);
}
}
}
return n;
}
function getPrev(curr){
var n = curr.parent().prev().children('div.tree-node');
if (n.length){
var node = t.tree('getNode', n[0]);
if (node.state == 'open'){
var cc = t.tree('getChildren', node.target);
if (cc.length){
n = $(cc[cc.length-1].target);
}
}
} else {
var p = t.tree('getParent', curr[0]);
if (p){
n = $(p.target);
}
}
return n;
}
})
}
})
$('#tt').tree('nav');
easyui 键盘控制tree 上下的更多相关文章
- 【Unity3D】使用鼠标键盘控制Camera视角(即时战略类游戏视角):缩近,拉远,旋转
今天写一个demo,要用到鼠标键盘控制三维视角,因此写了个脚本用于控制. 该脚本可以用于即时战略类游戏的视角,提供了缩进,拉伸,旋转.同时按住鼠标右键不放,移动鼠标可以实现第一人称视角的效果. usi ...
- 求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
package com.lw.HomeWork1;//包名 2 import java.util.Scanner; public class Demo18 { /** * @param args */ ...
- 键盘控制div移动
<!DOCTYPE html><html lang="zh-CN"><head> <meta charset="UTF-8&qu ...
- js键盘控制div移动,解决停顿问题
问题版本代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 <html> &l ...
- JS实现用键盘控制DIV上下左右+放大缩小与变色
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- OpenGL之路(八)加入�光照效果和键盘控制
在opengl中加入�光照的效果,可用键盘控制放大缩小 w键放大 s键缩小 d键开关灯 预览效果例如以下: 源代码例如以下: #include <gl/glut.h> #include & ...
- ARM开发(3)基于STM32的矩阵键盘控制蜂鸣器
一 矩阵键盘控制蜂鸣器原理: 1.1 本实验实现8*7矩阵键盘上按键控制蜂鸣器响. 1.2 实验思路:根据电路图原理,找出矩阵键盘行列所对应的引脚,赋予对应的按键值,然后控制蜂鸣器响. 1.3 ...
- [Python Study Notes]实现对键盘控制与监控
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ...
- ros_indigo使用keyboard键盘控制虚拟或实际机器人
首先,上参考网址: http://wiki.ros.org/Robots/TIAGo http://wiki.ros.org/teleop_twist_keyboard 第一个,使用TIAGo的gaz ...
随机推荐
- little skill---ping
一.ping简介 Ping是Windows下的一个命令,在Unix和Linux下也有这个命令. ping也属于一个通信协议,是TCP/IP协议的一部分. 利用“ping”命令可以检查网络是否连通,可以 ...
- asp提取声母源码
<% '****************************** '函数:getpychar(char) '参数:char,任意中文字符或句子 '作者:阿里西西 '日期:2007/7/15 ...
- java封装性
原先是class Person{ public string name; public int age } public void main{ Person person=new person(); ...
- LR11.0 下载及破解
1. 把loadrunner相关程序全部退出:2. 用LR8.0中的mlr5lprg.dll.lm70.dll覆盖LR安装目录下“bin”文件夹中的对应文件:3. 清理注册表(不清理的话,在添加lic ...
- GEF - 制作一个简单图形化编辑框架笔记1
在首先来看看GEF是什么,GEF的全称是Graphical Editing Framework,图形化框架,可以利用此框架做图形化编.他的基本原理是采用MVC开发模式. 以下是一些例子 GEF里面包含 ...
- FreeCodeCamp 前端初级算法(个人向)
freecodecamp 初级算法地址戳这里 Reverse a String 翻转字符串 function reverseString(str) { str=str.split("&quo ...
- php header函数详解
客户机的请求方式格式:是统一资源标识符.协议版本号,后边是MIME信息包括请求修饰符.客户机信息和可能的内容!服务器响应格式:一个状态行包括信息的协议版本号.一个成功或错误的代码,后边是MIME信息包 ...
- Gabor学习笔记
本文根据博客http://blog.csdn.net/watkinsong/article/details/7870996 ,博客http://www.cnblogs.com/yingying0907 ...
- TStringList中AddObject使用
结构体定义 PYpType=^TYpType; TYpType=record yfcode:string; ypcode:string; YpUnitPrice:Currency; ...
- Scala 深入浅出实战经典 第43讲:主要介绍类型变量bound
王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-64讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 ...