Как предотвратить ESC в опциях editable-параметров, распространяющихся в диалог jQuery-ui, в котором он находится? - PullRequest
0 голосов
/ 30 марта 2012

Я использую плагин editable-options для элемента SELECT в диалоговом окне jQuery-UI.Editable-options предоставляет поле выбора, в котором пользователи могут, как следует из названия, редактировать элементы OPTION.

Документация editable-options гласит: «Пользователь может отменить изменения, нажав escape».

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

Я провел некоторое исследование (в основном читая этот вопрос и ссылки, к которым он привел), и решил, что мне следует позвонить по электронной почте..stopPropagation () в обработку события escape-ключа в коде editable-options, но это не сработало.

Я использую jQuery 1.7.1 и jquery-ui 1.8.16 (что предполагаетсячтобы исправить проблему, описанную в ссылке выше, но, конечно, это только в самих диалогах, а не в редактируемых опциях).

Может кто-нибудь указать мне правильное направление, пожалуйста?Или скажите мне, если это просто невозможно исправить, хотя, если это так, то это делает редактируемые опции непригодными.Я продолжу свои собственные исследования и, если найду что-то, я либо добавлю это сюда, либо отвечу на свой вопрос.

1 Ответ

0 голосов
/ 31 марта 2012

Хорошо, я понял это и, как и обещал, вот ответ.

Оказывается, что код editable-options обрабатывает событие keyup , в то время как код диалога jQuery UI обрабатывает событие keydown , которое, конечно, происходит раньше. Поэтому код редактируемых опций не может перехватить событие.

Я добавил обработчик keydown в editable-options, в котором я вызвал e.stopPropagation () и presto! Проблема решена.

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