Primefaces - горячая клавиша Jquery работает только один раз, когда фокус находится в поле ввода - PullRequest
0 голосов
/ 31 мая 2018

Из-за ограничений горячей клавиши простых лиц я поместил нижеприведенный скрипт jquery (источник скрипта) , чтобы горячие клавиши работали, когда основное внимание уделяется полям ввода.Но это работает только один раз, когда страница загружается в первый раз.Если попытаться после любых вызовов AJAX, это не работает.У меня есть главный шаблон с тегами head и body, все xhtml-файлы обернуты в него.Ниже приведен код для конкретного XHTML, где требуется горячая клавиша.При щелчке вне поля ввода горячая клавиша работает отлично.Есть ли способ заставить его работать в полях ввода?

<ui:define name="pageJS">       
    <script type="text/javascript">
        /* <![CDATA[ */
        $(function() {$(':input').bind('keydown', 'ctrl+shift+v', function(){saveWidgetVar.jq.click();;return false;});});
        /* ]]> */
    </script>
</ui:define>

Следующая строка переносится в группу панелей.

<p:hotkey id="saveKey" bind="ctrl+shift+v" handler="saveWidgetVar.jq.click();" />

Есть ли определенное место, где должен быть скрипт JQueryпоместил?

На заметке в другом блоге я заметил в другом блоге, что путем изменения параметров горячих клавиш этого можно достичь.Ниже приведены рекомендуемые значения:

$.hotkeys.options.filterInputAcceptingElements = false;
$.hotkeys.options.filterTextInputs = false;

Я не уверен, где это добавить?

1 Ответ

0 голосов
/ 01 июня 2018

Я настроил основные лица hotkey.js, удалив проверку ввода;добавил его в мои местные ресурсы;затем перезаписываем исходный, включив настроенный файл в мастер-шаблон.Также использовал следующий код отмены привязки в цикле for, чтобы избежать множественного связывания.

$(document).off('keydown');

все отлично работает !!!

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