JSを利用してキーボードを実現して、プルダウンリストのスクロールを制御します.


昨夜は自分で倒れました.このコードは自分でしか分かりません.最初のブログ、記念してください.
コードはこれを挿入するのが便利です.
var keyHandler=function(event){
    var e = event || window.event || arguments.callee.caller.arguments[0];
    var hoverCSS={
      color: '#FFF',
      'background-color': '#6E9DE4'
    };
    var backCSS={
      color:'#000',
      'background-color':'#fff'
    };
    if(e && e.keyCode==37){ //    
      cu_pos--;
 $("#hh_"+dest).find('li').eq(cu_pos+1).find('a').css(backCSS);
       if(cu_pos<0){
        cu_pos=$("#hh_"+dest).find('li').length-1;
      }
      $("#hh_"+dest).animate({scrollTop:cu_pos*25},100);
       $("#hh_"+dest).find('li').eq(cu_pos).find('a').css(hoverCSS);
    }
    if(e && e.keyCode==38){ //    
      //     
               
      cu_pos--;
    //  console.log("Pressed  "+cu_pos);
               
      $("#hh_"+dest).find('li').eq(cu_pos+1).find('a').css(backCSS);
       if(cu_pos<0){
        cu_pos=$("#hh_"+dest).find('li').length-1;
      }
       $("#hh_"+dest).animate({scrollTop:cu_pos*25},100);
       $("#hh_"+dest).find('li').eq(cu_pos).find('a').css(hoverCSS);
              
    }
    if(e && e.keyCode==39){ // enter  
      cu_pos++;
         // if(cu_pos>=0){
          $("#hh_"+dest).find('li').eq(cu_pos-1).find('a').css(backCSS);
          //$("#hh_"+dest).css("marginTop","-=12px");
                 
        //  }
          if(cu_pos>=$("#hh_"+dest).find('li').length){
            cu_pos=0;
          }
           $("#hh_"+dest).animate({scrollTop:cu_pos*25},100);
                   
        $("#hh_"+dest).find('li').eq(cu_pos).find('a').css(hoverCSS);
                 
    }
    if(e && e.keyCode==40){ // enter  
           cu_pos++;
    //  console.log("Pressed  "+cu_pos);
       // console.log(cu_pos);
   //   console.log($("#hh_"+dest).find('li').length);
                 
         // if(cu_pos>0){
          $("#hh_"+dest).find('li').eq(cu_pos-1).find('a').css(backCSS);
        //  $("#hh_"+dest).css("marginTop","+=12px");
                
       //   }
      if(cu_pos>=$("#hh_"+dest).find('li').length){
            cu_pos=0;
          }
           $("#hh_"+dest).animate({scrollTop:cu_pos*25},100);
        $("#hh_"+dest).find('li').eq(cu_pos).find('a').css(hoverCSS);
                 
             
    }
    if(e && e.keyCode==13){ // enter Enter
   // console.log("Pressed Enter");
   // console.log($("#hh_"+dest).find('li').eq(cu_pos).find('a').html());
    gets_id('class_'+dest).value=$("#hh_"+dest).find('li').eq(cu_pos).find('a').html();
    $("#hh_"+dest).find('li').eq(cu_pos).find('a').css(backCSS);
    gets_id('hh_'+dest).style.display='none';
     document.removeEventListener("mousedown", handler, false);
           document.removeEventListener("keydown", keyHandler, false);
    }
};