Всем здрасте, такая проблема:
есть два div-a:
<div class="d1">
<div class="d2"></div>
</div>
и функуия:
$('.d1').click(function(){
$(this).css({'display': 'none'}).transition({opacity: 0});
});
Вопрос: почему у div c классом d2 так же есть эта функция, каким, обазом она унаследовалась?
использую jq 2.0.3
1. Событие срабатывает сначала на самом вложенном элементе .d2, а потом всплывает до указанного селектора .d1
Читайте про всплытие событий для понимания происходящего.
2. Если изменяемый css-параметр всего один, то вместо массива .css({'display':'none'}) можно .css('display', 'none')
3. И конечно вместо .css({'display':'none'}) просто .hide()
Последний раз редактировалось mi.rafaylik, 09.10.2013 в 14:39.
когда вы кликаете по d2 вы так же кликаете и по d1 потому что d1 для d2 фактически является полотном. Что бы d1 не получал событие, его нужно прервать у d2. Для этого на d2 нужно повесить событие вида: