1

ボタンをクリックするとdivが表示され、そのボタンを再度クリックすると非表示になるようにトグル機能を使用しています。しかし、問題は、divにdivを閉じるもう1つの閉じるボタンがあることです。つまり、ボタンをクリックしたときにトグルが不完全であり、そのトグルボタンを介してdivを再度開こうとすると、最初にトグル手段が完了しますすでに非表示になっている div を再度非表示にしてから、再度表示します。そのための解決策はありますか?

$(".stngs").toggle(function() {
    $(".stngsubmenu").css({
        display: 'block'
    });
}, function() {    
    $(".stngsubmenu").css({
        display: 'none'
    });
});​
4

2 に答える 2

7

http://api.jquery.com/toggle/によると、ブール値をトグルに渡すことができます

$(".stngs").toggle($(".stngsubmenu").is(':visible'));

また

$(".stngs").toggle($(".stngsubmenu").is(':hidden'));

true は要素を表示し、false は.is()関数がブール値を返す要素を非表示にします

$(".stngsubmenu").is(':visible')// <-- 表示されている場合は true を返します

$(".stngsubmenu").is(':hidden')// <-- 非表示の場合は true を返します

http://jsfiddle.net/wirey00/KXPBq/

于 2012-08-10T16:25:18.313 に答える
2

以下を使用して、何かが隠されているかどうかを確認できます

if ( $('#mydiv').is(':hidden') ) {
    //do something
}
于 2012-08-10T16:22:06.227 に答える