Как правильно определить делегирование событий?
Привет! Есть два вопроса:victory: . По поводу первого: у меня есть n-ое число инлайн-блоков. При hover на каждом блоке у меня происходит выполнение набора анимаций. Но анимация срабатывает сразу на ВСЕХ блоках.
$('.capabilitySection-block').hover(
function(){
$('.capabilitySection-label').animate({paddingTop:'0px'},'slow');
$('.capabilitySection-block').css('background','none');
$('.capabilitySection-comment').animate({opacity:'1'},'slow');
},
function(){
$('.capabilitySection-label').animate({paddingTop:'120px'},'slow');
$('.capabilitySection-block').css('background','url(....)');
$('.capabilitySection-comment').animate({opacity:'0'},'slow');
});
Первый вопрос: как определить выполнение анимаций только для элемента (ОДНОГО), на которого наведена мышь ?? У меня есть мысли :write: (я не лентяй). Я правильно понимаю, что надо .hover() сделать для РОДИТЕЛЯ моих блоков? То есть я пишу:
$('.capabilitySection').hover=function(event){
var target=event.target;
if (target.className!='.capabilitySection-block') return;
// а вот тут как быть? Добавить элементы из верхнего скрипта?
}
:victory: Второй вопрос: при всех этих наведениях у меня почему-о не функционирует .css('background','url(....)'); Изображение изначально задано бекграундом, а по наведению (задумка) удаляется. Но этого не происходит:blink: . При этом URL у меня правильный. |
Coriolan161,
html напишите или как обычно ... $('.capabilitySection-label', this).stop(true, true).animate({paddingTop:'0px'},'slow'); и лучше переписать hover на mouseenter и mouseleave ну и вместо 'background' терзайте backgroundImage |
рони,
<div class="capabilitySection">
<div class="capabilitySection-block">
<p class="capabilitySection-comment">Появляющийся коммент</p>
<p class="capabilitySection-label">Подпись</p>
</div>
<!--..... и таких блоков (capabilitySection-block)ещё пятеро-->
</div>
|
рони, я сделал))) за идею с разделением hover спасибо
|
hover jquery проблемы
Coriolan161,
css сразу добавить, не судьба было ...
<!DOCTYPE HTML>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<style type="text/css">
.capabilitySection-block{
height: 80px;
float: left;
width: 300px;
background-image: url(http://javascript.ru/forum/images/ca_serenity/misc/logo.gif);
background-repeat: no-repeat;
background-size: 100% 100%;
}
.capabilitySection-label{
padding-top: 120px;
}
.capabilitySection-comment{
opacity:0;
}
</style>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script>
$(function() {
$('.capabilitySection-block').on({
mouseenter: function() {
$('.capabilitySection-label', this).stop(true, true).animate({
paddingTop: '0px'
}, 'slow');
$(this).css('backgroundImage', 'none');
$('.capabilitySection-comment', this).stop(true, true).animate({
opacity: '1'
}, 'slow');
},
mouseleave: function() {
$('.capabilitySection-label', this).stop(true, true).animate({
paddingTop: '120px'
}, 'slow');
$(this).css('backgroundImage', 'url(http://javascript.ru/forum/images/ca_serenity/misc/logo.gif)');
$('.capabilitySection-comment', this).stop(true, true).animate({
opacity: '0'
}, 'slow');
}
});
});
</script>
</head>
<body>
<div class="capabilitySection">
<div class="capabilitySection-block">
<p class="capabilitySection-comment">Появляющийся коммент</p>
<p class="capabilitySection-label">Подпись</p>
</div>
<div class="capabilitySection-block">
<p class="capabilitySection-comment">Появляющийся коммент</p>
<p class="capabilitySection-label">Подпись</p>
</div>
<!--..... и таких блоков (capabilitySection-block)ещё пятеро-->
</div>
</body>
</html>
|
Coriolan161,
ок справились сами :victory: |
| Часовой пояс GMT +3, время: 18:14. |