2010-07-16 3 views
0

У меня есть VBox, я назначил обработчик для клика, а внутри VBox у меня есть компоненты, такие как изображения и тексты без обработчика, назначенного для клика. Будет ли вызвана функция click, когда я нажимаю на текст и изображение? Если нет, то как я могу это сделать, не назначая обработчики отдельно, а на уровне контейнера? СпасибоКак работает событие щелчка Flex внутри контейнеров?

ответ

2

Щелкните мышью на событиях «пузырь» в Flex. Когда вы нажимаете на изображение, оно всплывает до родителя, потом родителя этого родителя и так далее, пока больше не осталось родителей.

Если у кого-либо из них есть кнопки прослушивания, они будут срабатывать, когда они будут достигнуты в процессе барботирования.

Также в случае, если currentTarget будет ссылаться на объект, у которого есть слушатель, и target будет тем, что было на самом деле нажато.

Так что в вашем случае, если они щелкнут по изображению, событие будет пузыриться до контейнера, запускающего событие, в вашей функции прослушивания щелкнув изображение будет event.target, а контейнером будет event.currentTarget.

Также в процессе барботирования он фактически начинается с корневого родителя вниз, это называется фазой захвата, затем пузырится обратно. Ваше событие будет срабатывать, когда оно будет всплывать, если вы не укажете useCapturePhase = true в прослушивателе событий. Вот как вы можете остановить событие от своих детей. Если вы используете фазу захвата, тогда вызовите event.stopPropagation() внутри прослушивателя событий, тогда контейнер получит событие, но дочернее изображение не будет.

0

Потребовалось час ответа на этот вопрос ... вероятно, было бы быстрее просто попробовать. :)

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

0

Я был уверен, что контейнеры, такие как VBox, не отправляют события кликов; если только они не пузырятся от детей.

Однако, нажатие на элементы в контейнере должно вызвать слушателя на вашем контейнере, как пузыри событий.

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