Не удается захватить первое событие onkeypress в javascript / jQuery, когда contenteditable = true - PullRequest
2 голосов
/ 06 мая 2011

Вот код:

<div onclick="this.setAttribute('contenteditable', 'true');"
    onkeypress="console.info(event.keyCode)">foo</div>

Вот как я ожидал работать: пользователь нажимает div, он доступен для редактирования, затем я могу перехватить некоторые ключевые события для запуска настраиваемой обработки клавишами Enter, Tab, Arrow.

Проблема в том, что вы можете редактировать div после щелчка, но вы не можете получить первое событие нажатия клавиши из onkeypress. Вы можете получить событие нажатия клавиши, только если дважды нажать .

Я использую Chrome Dev v12 на 32-битной Win7. Пожалуйста, помогите

Ответы [ 2 ]

4 голосов
/ 06 мая 2011

Попробуйте добавить this.focus вот так:

<div onclick="this.setAttribute('contenteditable', 'true');this.focus();"
onkeypress="console.info(event.keyCode)">foo</div>

Я попробовал здесь http://jsfiddle.net/carlesandres/At9uK/, и это сработало.

0 голосов
/ 06 мая 2011

Вы могли бы сделать это (способ jquery):

<div id="div1"> foo </div>

<script>
$(document).ready(function(){
   $("#div1").click(function(){
      $(this).attr("contenteditable", true);
   }).keypress(function(event){
      console.info(event.keyCode);
   });
});
</script>

Надеюсь, это поможет.Приветствия

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...