Jquery. Проблема с Hover/Unhover
Здравствуйте, у меня есть необходимость делать видимым/скрывать определенный блок при наведении/отведении курсора мыши с ссылки(тег a).
Проблема вот в чем: если очень быстро провести курсор через ссылку, то блок появится, но не исчезнет. Вот код:
$('.desc a').hover(function (e) {
$('.dynamicBlock').fadeIn();
}, function () {
$('.dynamicBlock').fadeOut();
});
Кто-нибудь сталкивался с таким? Подскажите как решить. |
mazahaler,
$('.dynamicBlock').stop().fade... |
рони,
Неа, что-то не помогает. |
Цитата:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<script src='https://code.jquery.com/jquery-latest.js'></script>
<!--
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
-->
<style type='text/css'>
.dynamicBlock {
display: none;
}
</style>
<script type='text/javascript'>
$(function(){
$('.desc a').hover(function (e) {
$('.dynamicBlock').fadeIn();
}, function () {
$('.dynamicBlock').fadeOut();
}
);
});
</script>
</head>
<body>
<div class='desc'>
<a href='#'>Test</a>
<div class='dynamicBlock'>
dynamicBlock
<div>
<div>
</body>
</html>
|
Попробуйте так (сам проверить не могу, т.к. у меня тоже всё исчезает и в консоль ничего не попадает - т.е. этот блок кода никогда не выполняется. Возможно от браузера зависит):
<script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
<div class="desc"><p>вот это <a href="#">ссылка</a></p></div>
<div class="dynamicBlock" style="display:none;">А это блок</div>
<script>
$('.desc a').hover(function (e) {
$('.dynamicBlock').finish().fadeIn().queue(function() {
if(
$('.desc a:hover').length === 0
&& $('.dynamicBlock').queue().length === 0
&& $('.dynamicBlock').css('display') !== 'none'
) {
console.log('аварийное скрытие...');
$('.dynamicBlock').fadeOut();
}
$(this).dequeue();
});
}, function () {
$('.dynamicBlock').finish().fadeOut();
});
</script>
|
| Часовой пояс GMT +3, время: 12:55. |