2013-09-05 5 views
0

Я использую плагин jquery с использованием угловой директивы. У меня проблема с обработчиками угловых событий. У меня есть обработчик события keydown в угловом режиме, и в jquery-плагине есть один и тот же обработчик событий. Когда я делаю какое-либо событие нажатия клавиши, угловое обнаружение события возвращает false/event.preventDefault(). Но он по-прежнему вызывает обработчик события в плагине jquery. Любая идея, как я могу остановить обработчики событий от перехода к обработчику событий jquery из углового?Обработка обработчиков событий в угловом

ответ

0

Вероятно, вы не должны обрабатывать угловые события вместе с событием jQuery. Но если вы должны, попробуйте использовать event.stopPropagation()

Если это не режет его, вы можете проверить, был ли остановлен событие в вашей JQuery:

event.isPropagationStopped() 

, который возвращает логическое значение. http://api.jquery.com/event.isPropagationStopped/

Сценарий наихудшего сценария, вы держите общий флаг (переменная, видимая в области как для обработчика углового события, так и для обработчика события jQuery), всегда задерживайте обработчик jQuery на пару мс, а затем в своем угловой обработчик поднимет флаг isHandled. Когда дело доходит до вашего обработчика событий jQuery: если флаг равен false обрабатывать событие. если флаг true нижний флаг и возврат без обработки.

Но лучше всего обработать события только в Угловом и потерять jQuery.

+0

Я попробовал event.stopPropagation, он дает мне правду, но все же обработчик jquery создан? Как я могу исправить это с помощью тайм-аута? – insomiac

+0

Итак, если в вашем обработчике событий jQuery вы увидите, что event.isPropagationStopped() выйдет и не обработает событие. –

+1

Я делаю это в angualar, используя jquery – insomiac

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