2011-06-29 13 views
0

jQueryベースのドロップダウンメニューを使用していて、ドロップダウンアニメーション(slideDown)に遅延を追加したいとします。 setTimeoutを実装する方法を見て回りましたが、私のコードで動作させることができませんでした。誰でも助けることができますか?ドロップダウンナビゲーションのjQuery setTimeout

これは私のコードです:

$(document).ready(function() { 
    function megaHoverOver(){ 
     $(this).find(".sub").slideDown(500);  
    } 

    function megaHoverOut(){ 
     $(this).find(".sub").slideUp(150);  
    } 

    var config = {  
     sensitivity: 2, // number = sensitivity threshold (must be 1 or higher)  
     interval: 0, // number = milliseconds for onMouseOver polling interval  
     over: megaHoverOver, // function = onMouseOver callback (REQUIRED)  
     timeout: 0, // number = milliseconds delay before onMouseOut  
     out: megaHoverOut // function = onMouseOut callback (REQUIRED)  
    }; 

    $("#mainnav-first li").hoverIntent(config); 
}); 

ちなみに、私は次のことを試してみましたが、それはうまくいきませんでした:

$(document).ready(function() { 
    setTimeout(function megaHoverOver(){ 
     $(this).find(".sub").slideDown(500);  
    }, 500); 

    function megaHoverOut(){ 
     $(this).find(".sub").slideUp(150);  
    } 

    var config = {  
     sensitivity: 2, // number = sensitivity threshold (must be 1 or higher)  
     interval: 0, // number = milliseconds for onMouseOver polling interval  
     over: megaHoverOver, // function = onMouseOver callback (REQUIRED)  
     timeout: 0, // number = milliseconds delay before onMouseOut  
     out: megaHoverOut // function = onMouseOut callback (REQUIRED)  
    }; 

    $("#mainnav-first li").hoverIntent(config); 
}); 

答えて

3

あなたは(遅延を使用していることを達成することができるはずです):

$(this).find(".sub").delay(500).slideDown(500); 

http://api.jquery.com/delay/

+0

私は.delayを試しましたが、ユーザーがトリガーからロールアウトすると、ドロップダウンが降りないようにします。 .delayを指定すると、何に関係なくアニメーションが実行されます。 – Julesfrog

関連する問題