2016-04-24 5 views
1

私はliのホバー上で内側divを表示しようとしています。私はフェードインとフェードアウトを行っていますが、問題は、すべてのフェードインで効果的にすべてを動かすときです。私が1秒間liにマウスを置いたときに表示されるべき場所と、1秒前にその要素を残すと、それはフェーディン効果を表示すべきではありません。1秒後にli上をホバーするとホバー上にポップアップが表示されます

<script type="text/javascript"> 
    $(document).ready(function(){ 

     var _changeInterval = null; 
     $(".badge_icon").hover(function() { 
      clearInterval(_changeInterval) 

      _changeInterval = setInterval(function() { 
       $(this).find(".badges_hover_state").fadeIn(500); 
      }, 1000); 

     },function() { 

      $(this).find('.badges_hover_state').fadeOut(500); 

     }); 
     }); 
</script> 

私はstop()、delay()も使用しようとしましたが、成功しませんでした。ついに、私は時間間隔でやろうとしましたが、私のコードは動作しなくなりました。

答えて

0

は、変数名の前に窓を追加することで、この問題を解決することができました参照してください。

var myTimeout; 

    $('.div').mouseenter(function() { 
     window.el = $(this); 
     myTimeout = setTimeout(function() { 
      el.css("width","200px"); 
     }, 1000); 
    }).mouseleave(function() { 
     clearTimeout(myTimeout); 
     el.css("width","100px"); 
    }); 
1

あなたはこのjqueryのスクリプトを使用することができます。

var myTimeout; 
$('#div').mouseenter(function() { 
    myTimeout = setTimeout(function() { 
     //Do stuff 
    }, 1000); 
}).mouseleave(function() { 
    clearTimeout(myTimeout); 
}); 

DEMO

+0

私はあなたが私にあなたの変更を送信...今https://jsfiddle.net/4a84mnvL/ –

+0

あなたが私に私のデモのリンクを送信問題を教えてください可能性があり、今現在、停止作業をいくつかの変更を行っています – paolobasso

+0

https://jsfiddle.net/4a84mnvL/1/ it $(this)not working) –

関連する問題