발생원인
atag를 사용하여 선택하는 node를 만들어서 문제 발생.

예제 소스

<ul class="dt-children">
   <li data-node-id="5" class="open">
      <div class="dt-node" style="padding-left:24px" draggable="true">
         <i class="dt-expander visible"></i><label class="dt-checkbox dt-checked"><span class="dt-icon checkbox"></span></label><a class="dt-text-content"><span>5Node 1.1.1</span></a>
      </div>
      <ul class="dt-children">
         <li data-node-id="6" class="">
            <div class="dt-node" style="padding-left:36px" draggable="true">
               <i class="dt-expander "></i><label class="dt-checkbox dt-checked"><span class="dt-icon checkbox"></span></label><a class="dt-text-content selected"><span>6Node 1.1.1.1</span></a>
            </div>
            <ul class="dt-children"></ul>
         </li>
      </ul>
   </li>
</ul>

해결방법 1

a tag를 그대로 사용할경우. 

keydown 이벤트 발생후 . 
이벤트 적용할 element에  
이벤트가 끝나는 시점에 focus를 다시 주면해결. 
element.removeAttribute("tabindex");
element.setAttribute("tabindex", "0");
element.focus();

해결방법 2

css 를 이용하는 방법 . 

display:none 이나 visibility:hidden 은 focus를 사라지게함. 
영역을 숨기는 작업을 할때는 

hidden 일경우
opacity : 0 
height: 0

visible 일경우 
opacity : 1 
height: 100%

해결방법 3

제일 쉬운 방법. 

a tag를 다른 태그(span, div)로 교체 하면됨.  

+ Recent posts