2013-10-24 3 views
0

Каков наилучший способ «владеть» текстовым вводом с помощью jQuery, чтобы я мог в него вводить, прослушивать события из точки в коде, что происходит у «владеющего», но в противном случае не позволяет любому другому JavaScript получать keydown и keyup Мероприятия.Как создать текстовый ввод с помощью jQuery?

+2

остановить события от распространения. –

+0

http://api.jquery.com/event.stopPropagation – Blazemonger

+0

и прекратить немедленное распространение –

ответ

0

Вы можете остановить события из propogating

Мы можем использовать event.isPropagationStopped(), чтобы определить, является ли этот метод был когда-либо называли (на этот объект события).

Этот метод работает для настраиваемых событий, запускаемых с помощью trigger().

Обратите внимание, что это не предотвратит запуск других обработчиков одного и того же элемента .

0

Установите обработчик события непосредственно на элемент и используйте stopImmediatePropagation(), поэтому даже другие обработчики на элементе не запускаются. Вы также можете указать preventDefault() для некоторых типов элементов.

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

Если элемент находится на странице перед запуском вашего скрипта, у чего-то еще может быть возможность добавить обработчик события. В этом случае вы можете зайти так далеко, чтобы удалить обработчики событий уже на элементе, прежде чем добавлять свои собственные. Вы можете получить объект обработчиков событий с помощью $._data(*element*,"events"), а затем увеличивать его по клавишам, чтобы найти все имена событий и удалить любые обработчики событий на объекте.

Смежные вопросы