Javascript IE события мыши ограничены исходным получателем? - PullRequest
1 голос
/ 06 сентября 2011

У меня есть информационное наложение, которое прекрасно работает в Chrome и FF. Это div, содержащий таблицу (для макета изображения границы), а затем центральный div контента. Я запускаю mousedown в соответствующих ячейках таблицы границ.

Как только это происходит, другой div выводится на фронт с z-index, и он проходит по событиям mousemove и mouseup, чтобы обрабатывать перетаскивание информационного пузыря. После запуска mouseup информационный пузырь возвращает div «event» туда, где он был.

Я также следую за тем же процессом перетаскивания нижнего правого угла пузыря, чтобы изменить его размер. Опять же, работает в Chrome и FF, но не работает в IE.

IE, похоже, ограничивает триггеры событий информационным div. Если мыши удается выйти за пределы div (перетаскивание быстрее, чем запуск / обновление событий), информационный оверлей больше не получает события mousemove. Однако, если я наведу курсор мыши поверх оверлея (не отпуская кнопку), он продолжит получать события мыши.

Редактировать: при создании некоторого примера кода (текущая функциональность разделена на несколько модулей JS), он работал в IE. Как только я найду разницу между моим примером кода и реальным кодом, я снова обновлюсь.

Редактировать / ответить: (ТАК не позволю новому пользователю ответить на свой вопрос в этот промежуток времени ...) Все еще не уверен, в чем была проблема. (Если вы спросите меня, div с z-индексом 100 должен нормально получать события мыши?)

Мое решение состояло в том, чтобы исправить мою обработку событий мыши так, чтобы я мог прикрепить mousemove и mouseup к родительскому div (как это должно было быть сделано в первую очередь) для всех режимов перетаскивания / изменения размера, которые я хотел настроить.

Проблема была из-за подхода новичка к событиям и наличия stopPropagation () в слишком многих местах, мешающих мне использовать такой подход. (Я хотел, чтобы текст и т. Д. В моем информационном окне можно было выбирать).

Я изменил код так, чтобы мои текстовые контейнеры должны были останавливать распространение только при mousedown вместо всех событий мыши.

...