0

私はjQueryを学んでいて、何かを結びつけています。

メニューをクリックしてメニューにスライドを作成しました。現在、2 つのイベント .click があり、1 つはスライド イン用、もう 1 つはスライド アウト用です。メニューをクリックすると、メニューが開き、直接閉じます。

どうすればそれを防ぐことができますか? こんな感じにしたいです。メニューのどこかをクリックすると、メニューがスライドします。

手伝って頂けますか?

$(document).ready(function(){

//Button fade by mouse enter
$("#menubutton").mouseenter(function(){
        $("#menubutton").fadeTo('slow', 0.5);
});

//Slide in menu by clicking on menu
$("#menubutton").click(function(){
    $("#menu").slideToggle('slide');    
});

//Back to normal after mouse leave
$("#menubutton").mouseleave(function(){
    $("#menubutton").fadeTo('slow' , 1);
});

$(document).click(function(){
    $("#menu").slideUp("slow");
});


});

よろしくお願いします!

4

1 に答える 1

0

問題は、ボタンのクリックがドキュメント要素に伝播するため、スライドアップハンドラーもトリガーされることです。その伝播を防ぐ必要があります。

//Slide in menu by clicking on menu
$("#menubutton").click(function(event){
    $("#menu").slideToggle('slide');
    event.stopPropagation();
});

デモ

于 2013-09-28T14:09:09.563 に答える