Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   При повторном наведении блок мигает (как исправить), jquery (https://javascript.ru/forum/jquery/55194-pri-povtornom-navedenii-blok-migaet-kak-ispravit-jquery.html)

Manzroid 17.04.2015 10:08

При повторном наведении блок мигает (как исправить), jquery
 
Здравствуйте!

Есть функция которая при наведении на блок вставляет в него другой блок, который затем исчезает через 1200 милисекунд. Однако если в это время повторно навести, появляется дубль блока. Я пытался поиграться с методом .stop (), ничего не дало. Какие будут предложения? (замечу, что нужен именно такой вариант кода как ниже, т.е. я имею ввиду без скрытого див блока, т.к. именно в таком варианте я справился с глюком когда при наведении у всех других див с таким же классом, появляется блок). Вот код:

$(document).ready(function(){
$("span.price").hover(function(){

$(this).append($('<a href="http://www.****.ru/skidki.html" target="_blank"><div class="priceout">БЛА БЛА БЛА</div></a>').fadeIn(1200));
}, function() {

$(this).find("div:last").fadeOut(200);

});
});

рони 17.04.2015 10:17

Manzroid,
если блок вставлен уже зачем его добавлять ещё сотни раз?

рони 17.04.2015 10:58

Manzroid,
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
  $(function() {
    $("span.price").mouseenter(function() {
        var a = $(this).find($(".priceout").parent());
        a = a.length ? a : $('<a href="http://www.****.ru/skidki.html" target="_blank"><div class="priceout">БЛА БЛА БЛА</div></a>').css({
            "display": "none"
        }).appendTo(this);
        a.stop(true, true).fadeIn(1200)
    }).mouseleave(function() {
        $(this).find($(".priceout").parent()).stop(true, true).fadeOut(200)
    })
});
 </script>
</head>

<body>
<div class='main'>
<span class='price'>текст1</span>
</div>
<div class='main'>
<span class='price'>текст2</span>
</div>

</body>

</html>


Часовой пояс GMT +3, время: 23:14.