даже если есть хороший ответ на josh, я бы сказал, не используют одни и те же классы, чтобы вызвать разные Мероприятия.
IMO классы CSS могут быть вложенными, если цель состоит в том, чтобы стиль элементов. если есть события, которые будут связаны на основе классов, лучше не гнездятся их, попробовать различные классы для родителей и детей
почему:
Вы использовали .clickable
для обоих родителей и ребенка, так что я предположим, вам потребуется дополнительно связать другое событие для родителя.
Смотреть это:
$('.clickable > .clickable').click(function() {
$(this).css('border', '1px solid red');
});
Это будет работать как шарм, но рассмотреть возможность того, что вам требуется, чтобы добавить еще одно событие для родительского DIV себя, и вы делаете что-то вроде
$('.clickable ').click(function() {
// make some operation on parent
});
Этот также инициирует событие click для детей (из-за того, что они имеют один и тот же класс), в то время как вам нужен родительский клик.
Таким образом, вы можете сделать что-то подобное, что было бы лучшей практикой
<div class="super"> // removed the clickable class from parent
<div id="child-1" class="child clickable"></div>
<div id="child-2" class="child clickable"></div>
</div>
js
$('.clickable').click(function() {
$(this).css('border', '1px solid red');
});
Вот это .. и тогда вы будете не испортит ваш код в будущем
Edit:
Теперь, когда вы использовали двойные классы, а как LinkinTED в следующем сообщении: вы можете сделать что-то вроде $(.child.clickable)
и $('.super.clickable')
, чтобы различать события для родителя и детей, но, честно говоря, это делает ваш класс clickable
бесполезным. Таким образом, ключ - это просто избежать вложенности тех же классов, если вы хотите присоединить к ним события.
Просто догадываюсь, пока я не смогу проверить его, но как насчет $ (this) .find ('. Child'). Css ('border', '1px solid red'); – lharby
Я думаю, что если вам нужно другое поведение, вам нужно будет привязать к другому классу или селектору. Использование clickable на родительском и дочернем языках сбивает с толку. – lharby