2014-10-11 4 views
5

Я добавил transitionend прослушиватель событий на div. У этого div есть дети, у которых есть переход на некоторые элементы. Я хочу, чтобы событие перехода только для элемента, для которого я его добавил, является ли это ошибкой? или ожидаемое поведение? Как заставить его срабатывать только в том случае, если к нему добавлен слушатель?Переход на прослушивание на дочерние элементы TransitionEnd

ответ

9

События по-прежнему пузырятся, означает, что они будут «переданы» родительскому элементу до тех пор, пока они не ударяют тело или обработчик, который их остановит.

Вы можете:

  • Фильтр по event's target будучи уверен, что это элемент вы ориентируетесь.
  • Прослушивание мероприятия для детей и event.stopPropagation() на них. Таким образом, они больше не будут пузыриться через родителя.

Если вы укажете нам какой-то код, было бы проще помочь вам, в зависимости от вашей текущей реализации.

+0

Спасибо за эти варианты это было приятно! Я пошел с event.stopProp – Noitidart

5

Этот процесс называется Event Bubbling. Вещь, которую вы можете сделать, - это либо обнаружить пузырьки с помощью обработчика событий, либо предотвратить пузырение, прекратив протагонирование. Вы можете сделать это

event.stopPropagation() 

В IE Beofore 9.

Вы можете сделать это, как

window.event.cancelBubble = true; 

Пожалуйста, подробно рассмотрит here

+0

Удовольствие ....;) –

+1

Пожалуйста, не возражаете, но я согласился, чтобы другие ребята ответили, когда он опубликовал первый. Но ваша информация и объяснение IE9 очень ценится. – Noitidart

+2

это хорошо, человек .. это не имеет значения, принимая ответ. Дело в том, что если это помогло вам или нет, и я рад, что это вам помогло .. :) Приветствия .. Хэпи-кодирование –

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