2012-09-18 3 views
0

HTML 문서에 3 개의 div 부분이 있으며 키를 누를 때마다 서로 전환하려고합니다. 키 프레스 이벤트가 발생하면 현재 divid을 얻었고 그 내용에 따라 id에 따라 div (div 1 인 경우 div 2에 페이드 인 등)이 사라집니다.키 누름시 현재 div의 ID 가져 오기

내 HTML 코드는 다음

jQuery 코드
<div id="home" class="current"> 
     <p align="center">Home</p> 
     <p align="center"> 
      Some content 
     </p> 
    </div> 
    <div id="about"> 
     <p align="center">About</p> 
     <p align="center"> 
      Some content 
     </p> 
    </div> 
    <div id="contact"> 
     <p align="center">Contact Form</p> 
     <p align="center"> 
      Some content 
     </p> 
    </div> 

:

<script> 
$("#target").keypress(function(){ 

     var id = $(this).html().toLowerCase(); 
      console.log('id is: '+id);  
     $('.current').fadeOut(900, function(){ 
      $('#'+id).fadeIn(900); 
      $('.current').removeClass('current'); 
      $('#'+id).addClass('current'); 

     }); 

    }); 
</script> 
​ 

위의 코드는, 내가 jQuery 이벤트와 새로운 오전, 작동하지 않습니다 당신이 날 안내 제발 수 옳은 길.

+1

어떤 키가 "모든"키입니까? – Rob

+0

any key press를 처리하는'keypress' API가 아닌가? – Malloc

+0

키보드에서 "모든"키를 찾을 수 없습니다. – Rob

답변

1

대신 keyup.val을 사용하십시오.

$("#target").keyup(function(){ 

    var id = $(this).val().toLowerCase(); 
    $('.current').removeClass('current').fadeOut(900, function(){ 
     $('#'+id).fadeIn(900).addClass('current'); 
    }); 

}); 
+0

고맙습니다. 나는 당신의 코드를 구현했는데, 키를 눌렀을 때 콘솔에 오류가 발견되지 않았는데 아무런 일도 일어나지 않았다. – Malloc

+0

#target에서 사용자가 "키 누르기"하지 않기 때문입니다. 난 당신이 전체 문서에 수신기를 추가하고 $ ('. 현재')에서 id를 검색해야한다고 생각합니다. – Giona

1

이벤트 리스너가 필요합니다. keyCode 조건문을 임의의 키 (특정 키가 아닌)로 사용하려면이 키 코드를 제거 할 수 있습니다.

$(document).keyup(function(e) { 
if (e.keyCode == 13) {    // enter key 
    var id = $('.current').attr('id'); 
    if (id == "whatever") { 
    ............ 
    } else if (id == "somethingelse") { 
    ............ 
    } 
} 
});