2011-10-06 3 views
0

jquery가있는 입력 요소에서 발생시키는 키 이벤트를 가져올 수 없습니다. 주어진 다음 코드 :크롬 jquery에서 "input"에 대한 이벤트가 실행되지 않습니다.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
<html> 
    <head> 
     <script type="text/javascript" src="./js/jquery-1.5.1.min.js"></script> 
     <script type="text/javascript" src="./js/jquery-ui-1.8.14.custom.min.js"></script> 
     <script type="text/javascript">   


      $("#cmd").keypress(function(event) { 
       alert("keypress"); 
       if(event.which == 13){ 
        $.ajax({ 
         type: "POST", 
         url: "update", 
         data: "key=" + key + "&cmd=" + $("#cmd").val() 
        }); 
        $("#cmd").val(""); 
        $("#cmd").focus(); 
       } 
      }); 


    </script> 
     <title>BCMD</title> 
    </head> 
    <body> 
     <div id="main" style="background-color: black; color: white; width:100%; height:500px;"> 
      <input id="cmd" type="text" style="border:0;"></input> 
     </div> 
    </body> 
</html> 

아무것도 발사되지 않습니다. 어떤 아이디어? 감사.

+0

jQuery 파일을로드 했습니까? NET의 탭에서 확인하십시오. 그게 문제가 될 것 같아. –

+2

$ ("# cmd") ... 소스를 $ (function() {})으로 둘러보십시오. ? –

+0

저를 위해 일하는 것 –

답변

3

$ (문서) .ready 기능이 없습니다. $ (function() {})에서 자바 스크립트를 캡슐화하십시오. 그것을 작동 시키려면.

<script type="text/javascript">   

     $(function() { 
      $("#cmd").keypress(function(event) { 
       alert("keypress"); 
       if(event.which == 13){ 
        $.ajax({ 
         type: "POST", 
         url: "update", 
         data: "key=" + key + "&cmd=" + $("#cmd").val() 
        }); 
        $("#cmd").val(""); 
        $("#cmd").focus(); 
       } 
      }); 
     }); 

</script> 

JQuery는 문서로드시에만 실행해야한다는 것을 나타 내기 위해 이러한 종류의 코드를 캡슐화해야합니다.

+0

그것은 "jquery 초기화 함수"가 아니며,'$ (document) .ready'입니다. http://api.jquery.com/ready/ –

+0

@kingjiv 사실입니다! 불쌍한 말씨, 제 사과. –

+0

그건 실제로 문제가되었습니다. 감사! 꽤 jquery에 새로워. – feathj

0

cmd 요소가 있기 전에 코드를 실행하고 있습니다. document.ready에 코드 래핑 :

$(function(){ 
    // your code here 
}) 

코드를 실행하기 전에 DOM이로드 될 때까지 대기합니다.

관련 문제