1

簡単なjQueryスクリプトがあります。これはスクリプトです:

var menu = $('#nav .menu');

$('li', menu).mouseenter(function() {
    $(this).find('.sub-menu').slideDown();
}).mouseleave(function(){
    $(this).find('.sub-menu').slideUp();
});

このスクリプトはサブメニューを開きます。しかし、私はこのスクリプトに問題があります。あなたがすぐにそれを越えるならば。スクリプトは毎回起動します。あなたがアイテムをすぐに調べるとき。メニューは何度も開きます。どうすればこれを修正できますか?

助けてくれてありがとう

4

2 に答える 2

3

jQueryの.stop()関数を使用します。必要な引数を渡す例。.stop(true,true).stop(true)

$('li', menu).mouseenter(function() {
    $(this).find('.sub-menu').stop().slideDown();
}).mouseleave(function(){
    $(this).find('.sub-menu').stop().slideUp();
});

または、コンテキストが少しすっきりしているように見えるので、これを渡す-.find()と同じことをします

$('li', menu).mouseenter(function() {
    $('.sub-menu',this).stop().slideDown();
}).mouseleave(function(){
    $('.sub-menu',this).stop().slideUp();
});
于 2012-11-13T18:29:54.380 に答える
0

このように使用します:

$('#nav .menu li').hover(function() {
   $('.submenu').stop().slideDown();
}, function(){
   $('.submenu').stop().slideUp();
});
于 2012-11-13T18:31:57.910 に答える