zoukankan      html  css  js  c++  java
  • easyui 键盘控制tree 上下

     1 $.extend($.fn.tree.methods, {
     2     highlight: function(jq, target){
     3         return jq.each(function(){
     4             $(this).find('.tree-node-hover').removeClass('tree-node-hover');
     5             $(target).addClass('tree-node-hover');
     6         })
     7     },
     8     nav: function(jq){
     9         return jq.each(function(){
    10             var t = $(this);
    11             t.attr('tabindex',0);
    12             t.unbind('.tree').bind('keydown.tree', function(e){
    13                 var curr = getCurr();
    14                 if (!curr.length){return}
    15                 if (e.keyCode == 40){    // down
    16                     var li = getNext(curr);
    17                     if (li.length){
    18                         t.tree('highlight', li[0]);                        
    19                     }
    20                 } else if (e.keyCode == 38){    // up
    21                     var li = getPrev(curr);
    22                     if (li.length){
    23                         t.tree('highlight', li[0]);                        
    24                     }
    25                 } else if (e.keyCode == 13){
    26                     t.tree('select', curr[0]);
    27                 } else if (e.keyCode == 39){    // right
    28                     if (!t.tree('isLeaf', curr[0])){
    29                         t.tree('expand', curr[0]);
    30                     }
    31                 } else if (e.keyCode == 37){    // left
    32                     if (!t.tree('isLeaf', curr[0])){
    33                         t.tree('collapse', curr[0]);
    34                     }
    35                 }
    36                 e.preventDefault();
    37             }).bind('mouseover.tree', function(e){
    38                 var node = $(e.target).closest('div.tree-node');
    39                 if (node.length){
    40                     t.find('.tree-node-hover').each(function(){
    41                         if (this != node[0]){
    42                             $(this).removeClass('tree-node-hover');
    43                         }
    44                     })
    45                 }
    46             });
    47             function getCurr(){
    48                 var n = t.find('.tree-node-hover');
    49                 if (!n.length){
    50                     n = t.find('.tree-node-selected');
    51                 }
    52                 return n;
    53             }
    54             function getNext(curr){
    55                 var n = $();
    56                 var node = t.tree('getNode', curr[0]);
    57                 if (t.tree('isLeaf', node.target)){
    58                     n = curr.parent().next().children('div.tree-node');
    59                     if (!n.length){
    60                         var p = t.tree('getParent', curr[0]);
    61                         if (p){
    62                             n = $(p.target).parent().next().children('div.tree-node');
    63                         }
    64                     }
    65                 } else {
    66                     if (node.state == 'closed'){
    67                         n = curr.parent().next().children('div.tree-node');
    68                     } else {
    69                         var cc = t.tree('getChildren', curr[0]);
    70                         if (cc.length){
    71                             n = $(cc[0].target);
    72                         }
    73                     }
    74 
    75                 }
    76                 return n;
    77             }
    78             function getPrev(curr){
    79                 var n = curr.parent().prev().children('div.tree-node');
    80                 if (n.length){
    81                     var node = t.tree('getNode', n[0]);
    82                     if (node.state == 'open'){
    83                         var cc = t.tree('getChildren', node.target);
    84                         if (cc.length){
    85                             n = $(cc[cc.length-1].target);
    86                         }
    87                     }
    88                 } else {
    89                     var p = t.tree('getParent', curr[0]);
    90                     if (p){
    91                         n = $(p.target);
    92                     }
    93                 }
    94                 return n;
    95             }
    96         })
    97     }
    98 })

    $('#tt').tree('nav');
  • 相关阅读:
    Java中使用synchronized多线程同步的实例
    JDK中String类的intern方法实例
    Ubuntu APT按时间顺序排列已安装的软件包
    LinuxMint/LMDE 安装后的配置
    XLNX XC7Z020平台GIC中断示例程序
    吾八哥学k8s(四):kubernetes常用基本命令
    吾八哥学k8s(三):kubernetes里创建资源的方法
    gitlab-runner在Kubernetes环境下挂载宿主机目录的方法
    吾八哥学k8s(二):golang服务部署到kubernetes
    记Windows10下安装Docker的步骤
  • 原文地址:https://www.cnblogs.com/XiaoGer/p/4103275.html
Copyright © 2011-2022 走看看