Триггеры .dblclick () не работают (проблема с Dojo?) - PullRequest
0 голосов
/ 20 марта 2019

Я создаю расширение Chrome, в котором я заменяю текстовую область улучшенной версией для отображения расширенного текста на веб-сайте. На старой текстовой области было предложено дважды щелкнуть и нажать клавишу ввода, чтобы сохранить изменения. Поскольку веб-сайт был построен в Додзё, эти события были записаны с:

<textarea rows="1" class="old_element" data-dojo-attach-point="formula" data-dojo-attach-event="ondblclick:_onDoubleClick,onkeypress:_onKeyPress,onkeydown:_onKeyDown,onmouseup:_setInputSelection,onfocus:_setInputSelection,onkeyup:_setInputSelection" style="display: none;"></textarea>

Поэтому я пытаюсь вызвать эти 2 события при нажатии клавиши ввода на новом элементе со следующим кодом jQuery:

$('.new_element').keydown(function(e) {
  if (e.keyCode == 13) {
    console.log('enter key pressed');
    $('.old_element').dblclick();
    $('.old_element').trigger(e);
  }
});

Журнал консоли «клавиша ввода нажата», но с событиями ничего не происходит. Любая идея? Должен ли я использовать обработчик событий Dojo?

Спасибо за вашу помощь

1 Ответ

0 голосов
/ 21 марта 2019

ОК, теперь я использую следующий код для двойного щелчка.Это работает хорошо.

$('new_element').dblclick(function(){$('old_element')[0].dispatchEvent(new MouseEvent('dblclick', {bubbles: true}));});

IFor обработчик событий клавиатуры, я использовал следующий код.Это работает хорошо для клавиши escape, но dispatchEvent для клавиши Enter не запускает клавишу ввода, как ожидалось.Есть идеи?

  $('new_element').keydown(function(e) {
if (e.key === "Escape") {
  $('old_element')[0].dispatchEvent(new KeyboardEvent('keydown', {bubbles: true, cancelable: true, keyCode: 27}));
  return false;
} else if (e.keyCode == '13') {
    $('old_element')[0].dispatchEvent(new KeyboardEvent('keydown', {bubbles: true, cancelable: true, keyCode: 13}));
    return false;
}

});

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