Совершение действия при одновременном нажатии Ctrl+Enter.

Рейтинг: 0Ответов: 1Опубликовано: 19.01.2015

Есть HTMЛ:

<div>
  <div class="text-td" contenteditable="true">Ячейка</div>
  <div class="ok-td">Кнопка</div>
</div>

Необходимо, при одновременном нажатии Ctrl+Enter нажатии, редактируя ячейку с классом "text-td", совершить нажатие на кнопку с классом "ok-td":

$(this).parent().find(".ok-td").click();

Прочел вот этот ресурс: http://learn.javascript.ru/keyboard-events

Работающий код: http://learn.javascript.ru/play/tutorial/browser/events/multikeys.html

У них дана вот эта функция:

runOnKeys(
  function() { alert("Привет!") },
  "Q".charCodeAt(0),
  "W".charCodeAt(0)
);

Я сделал для своего случая, тоже работает:

runOnKeys(
  function() { alert("Привет!") },
  13,
  17
);

НО проблема в том, что блоки у меня создаются "на лету", т.е. изначально их нет, они приходят АЯКСОМ, а значит необходима функция ".on".

Вот что у меня получилось:

$("body").on("keypress", ".text-td", function(e) {      
    if(e.keyCode==13){              
          $(this).parent().find(".ok-td").click();
        }
  });

Она работает, если нажимаешь Enter, но мне нужно сумму Ctrl+Enter. Пожалуйста, помогите.

Ответы

▲ 1Принят

По идее можно попробовать использовать свойство ctrlKey объекта event

$("body").on("keypress", ".text-td", function(e) {
  if (e.ctrlKey && e.keyCode == 13) {
    $(this).parent().find(".ok-td").click();
  }
});

https://stackoverflow.com/a/1684236