2014-11-07 3 views
1

텍스트 영역이 있으며 스페이스 바를 눌렀을 때의 기능을 실행하려고합니다. 그러나 코드가 작동하지 않고 이유를 파악할 수 없습니다. 제가 한 연구에서 바로 보입니다. 당신이이기 때문에 그것은이다Jquery onfocus가 작동하지 않습니다.

여기 <div class="DivWithScroll" id="my_text" contenteditable="true" onkeypress="return myKeyPress(event)" onkeydown="return onKeyDown(event)">

내가 지금까지 .onFocus()

$('document').ready(function() { 
     $('#my_text').focus(function() { 
      $('#my_text').keydown(function (e) { 
       if (e.keyCode == '32') { 
        alert('space'); 
       } 
      }); 
      alert("Focused!"); 
     }); 
    }); 
+0

포커스 이벤트가 발생할 때 onkeydown을 설정해야하는 이유가 있습니까? 또한 myKeyPress 또는 onKeyDown 함수가 표시되지 않습니다. – MinusFour

+0

lmao, whoops * not working * – bbesase

+0

는 크롬에서 작동합니다. 브라우저 관련 문제 일 수 있습니다. 어떤 브라우저를 사용해 보셨습니까? –

답변

2

를 실행하려고 내 페이지에있는 jQuery 코드입니다 : 여기

텍스트 영역 정의의 경고를 사용합니다. Stop using alert for troubleshooting

이 작품 -

$('#my_text').focus(function() { 
    $('#my_text').keyup(function (e) { 
     if (e.keyCode == '32') { 
      console.log('space'); 
     } 
    }); 
    console.log("Focused!"); 
}); 

가능성이 키를 누를 때 문제가 발생하지 않도록, 너무이 상황에서 keyup()을 사용하는 것이 좋을 것이다. example

+0

예제는 div가 아닌 텍스트 영역이므로 좋지 않습니다. –

+0

그러면 OP에서 "여기에 텍스트 영역 정의가 있습니다"라고 표시되어 div가 표시됩니다. 덜 의미있는 의미에서, contenteditable div는 "텍스트 영역"입니다. –

+0

어쨌든 여기에서 http://jsfiddle.net/7cqawhf6/1/ 우리는 더 나은 제안을 볼 수 있습니다. http://jsfiddle.net/7cqawhf6/2/ 우리는 OP의 특정 구성을 봅니다. OP의 지정된 구성이 중단되지 않습니다. 경고로 다시 변경해도 문제가 해결되지 않으며 이는 문제의 해결책이 아닙니다. 문제는 DIV 자체에있는 임의의 이벤트 처리기 일 가능성이 큽니다. –

관련 문제