2013-12-11 2 views
3

У меня есть div, который абсолютно расположен над другими абсолютно позиционируемыми divs, и я хочу, чтобы divs под ними отображали мыши, мыши и события click, а верхний div также имел события click.Пожар нажмите события на div, но пройдите через hover

Единственный способ, которым я смог получить события мыши в нижеприведенных div, - это добавить указатели-события: none к указанному выше div, но тогда указанный выше div не получит события click, когда это свойство css присутствует.

Вот codepen показывает проблему

http://codepen.io/Wryte/pen/qsEBp

+0

И как бы вы нажимали верхний div и нижний div одновременно? То, о чем вы просите, - это то, что в 99% случаев означает, что вся ваша концепция ошибочна и нуждается в переосмыслении. – adeneo

+0

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

+0

Из того, что я вижу в вашем коде, вы не останавливаете распространение события, поэтому вы должны уловить событие щелчка на обоих. Вы можете убедиться, что добавив в нижний слой div мыши прослушиватели событий и сделайте что-нибудь с ними. –

ответ

0

@Wryte AH! хорошо, есть проблема с тем, что вы пытаетесь выполнить. Тень не является контейнером как слой поверх всего внешнего div, который покрывает остальные внутренние DIV. Поскольку тень div не входит в цепочку для пузырьков событий, она не будет вызвана или если вы поймаете события в тени DIV, вы не получите события, инициированные на внутренних DIV. Что вы можете сделать, это затемнить внешний DIV и добавить прозрачность во внутренние DIV. Почему вам нужно отслеживать события в тени DIV?

+1

Если бы это был оттенок модального всплывающего окна, я бы хотите щелкнуть, чтобы закрыть модальный и скрыть тень, но также иметь события наведения на огонь под элементами под тенью перед нажатием тени. – Wryte

+0

Очень интересно. Я рекомендую вам обрабатывать тень от событий щелчка на том, что находится поверх него (как вы объясняете), и пусть события мыши щекочут DIVs позади;). Вы можете сделать функцию hideShowShade и называть ее всякий раз, когда захотите. –

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