2012-03-11 4 views
0

이전에 초점을 맞춘 요소를 얻는 방법은 무엇입니까?이전 초점 요소를 얻는 방법?

설명 :

사용자가 폰 패드 키를 클릭하면 활성 또는 집중하지합니다. 그래서 : focus 또는 activeElement는 이전 포커스 요소 (텍스트 영역 또는 입력 텍스트)를 반환합니다.

<script> 
    $(function(){ 
     $(".phonepad").prop("disabled", true); 
     $('.phonepad').mousedown(function() { preventDefault();}); 
     $('.phonepad input').mousedown(function() { preventDefault();}); 
     $('.phonepad input').click(function(){ 
      $(document.activeElement).sendkeys(
         this.name || this.value); 
        ); 
     }); 
    }); 
</script> 
<div class="phonepad" > 
<input type="button" value="7" ><br> 
<input type="button" value="4" ><br> 
</div><br/> 
<input type="text" class="output" /><br/> 
<textarea class="output"></textarea><br/> 

답변

0

preventDefault()를 호출하는 버튼에 mousedown 이벤트 처리기를 연결합니다.

+0

또한 당신은() 대한 focusOut()를 입력 요소에 방법 당신은 내가 그 여전히'로 preventDefault()가'호출되기 전에'blur' 이벤트를 호출 할 가능성이 있다고 생각 –

+0

에 초점을 처리하고자하는 focusIn 사용할 수 있습니다. –

+0

요구 사항 : 사용자가 phonepad 키를 클릭하면 1) 초점이 맞춰진 텍스트 영역 또는 입력 텍스트가 포커스를 잃어서는 안됩니다. 2) 폰 패드에 집중해서는 안됩니다. 3) 사용자가 폰 패드 키를 클릭하면 : focus 또는 getactiveelement가 prevue focus 요소를 반환해야합니다. – 7Keypad

1

숨겨진 요소를 사용하여 현재 포커스가있는 요소를 추적 할 수 있습니다. 이렇게하면 다른 요소가 포커스를 얻으면 이전 요소 ID가 유지됩니다. 포커스가 설정된 요소를 클릭하면 ID가 숨겨진 요소에 저장됩니다. 포커스 비활성화 요소를 클릭하면 포커스가 이전에 포커스가있는 요소에 되돌려지고 'active_focus_enabled_id'숨겨진 요소가 업데이트되지 않습니다. 클래스를 사용하여 어떤 요소가 포커스를받을 수 있는지 여부를 식별하고 포커스가 설정된 모든 요소에 ID가 있는지 확인해야합니다.

<input type='hidden'id='active_focus_enabled_id' value=''id_with_initial_focus'> 

<input type='button' class='focus_enabled' id='id_with_initial_focus' value='Whatever #1'> 
<input type='button' class='focus_enabled' id='some_other_id' value='Whatever #2'> 
... 

<input type='button' class='focus_disabled' value='Phone Input #1'> 
<input type='button' class='focus_disabled' value='Phone Input #2'> 
... 

<script> 
$('.focus_disabled').click(function(event) { 
    var id_previous = $('active_focus_enabled_id').val(); 
    $(''#' + id_previous).focus(); 
}); 

$('.focus_enabled').click(function(event) { 
    var id_new = $(event.target).attr('id'); 
    $('active_focus_enabled_id').val(id_new); 
}); 
</script> 
관련 문제