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 ...
随机推荐
- 01_JavaScript简介
js用途 前端三层 结构层 HTML 从主义角度描述页面的结构 样式层 CSS 从审美的角度装饰页面 行为层 JS 从交互角度提升体验 HTML 里面的 b(加粗)/i(倾斜)/u(下划线)等标签由于 ...
- Ubuntu14.04.1 阿里apt源
deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiversedeb http://mirrors.a ...
- 使用VSTS/TFS搭建iOS持续集成环境
TFS 自2015版开始支持跨平台的持续集成环境,通过提供开源的build agent为 Windows / linux / macOS 提供了统一的持续集成环境管理能力.这篇文章给大家介绍一下如何使 ...
- 在github上写博客
在github上混了几个月,收获颇多.作为一个开源的坚定信仰者,深深觉得每一个码农都应该参与到开源社区中,github提供了一个平台,让你为开源项目提交代码变得异常简单和直接.以前由于工作异常繁忙和繁 ...
- 传统认知PK网络认知 刚子扯谈烤串认知
文/刚子 2013.7.23 提到认知,有太多的介绍,我就不在秀理论文字了,那样等于自我抄袭式的传播给大家,对于大家也没意思,可以推荐大家到百度里面搜索下”认知结构”,介绍的比我详细.同行老陈说的! ...
- webService----wsimport调用方式
一.工具 1.myEclipse 2.jdk1.7 二.创建服务端 1.创建web Service Project 命名为TheService 2.创建class类ServiceHello.java, ...
- 使用ClipboardUtils兼容API LEVEL 11以下实现复杂粘贴
实现功能:复杂粘贴内容 问题描述:android.content.ClipboardManager在APILevel 11之后才可以使用,而我们目前还要兼容API Level 10(2.3.3) 解决 ...
- Goldengate进程的拆分与合并
Goldengate的拆分与合并分类: ORACLE GoldenGate 2013-10-10 15:22 721人阅读 评论(0) 收藏 举报在使用Goldengate作为复制解决方案时,随着负载 ...
- Swift之手势总结
手势个人笔记,代码简单,不过多赘述. 建立手势只需三步 建立和设置手势识别器实例,设置target,action,指定一些属性 附加识别器到视图 实现action方法 1.首先还是创建一个view @ ...
- 修改windows密码后ssrs报错
昨夜修改了windows的登录密码,第二日发现ssrs全部无法访问.显示filenotfound等错误.细想一下,应该是修改了windows的密码导致ssrs权限验证失败. 因此将ssrs的服务帐号修 ...