Чтобы наложить стиль на div и не повлиять на родителя, вы можете остановить пузырь с помощью event.stopPropagation()
, например:
$("div").click(function(e) {
$(this).toggleClass("myClass");
e.stopPropagation();
});
Демонстрацию этой работы можно посмотреть здесь
Для случая hover
вы бы на самом деле хотели бы mouseover
и mouseout
вместо mouseenter
и mouseleave
(с которыми .hover()
связывается) в этом случае, вот так :
$("div").mouseover(function(e) {
$(this).addClass("myClass").parents().removeClass("myClass");
e.stopPropagation();
}).mouseout(function() {
$(this).removeClass("myClass");
});
Вы можете увидеть это в действии здесь