easyui 키보드 제어 tree 위아래
14553 단어 easyui
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');
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
EasyUI 생성 트리, 탭 열기 클릭텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.