0

他の 2 つの div ボックスをクリックすると表示/非表示になる 2 つの div ボックスがあります。そして、DOMを台無しにしないようにdivのスペースを維持したいので.toggle()、問題外だと思います。

私は運がないのでこれを試しました:

$('#red, #pink').click(function() {
// Based on the id property of the clicked element 

// this selects #reddef or #pinkdef element
if($('#' + this.id + 'def').is(":visible")) {
$('#' + this.id + 'def').css('visibility','hidden');} 

else if($('#' + this.id + 'def').is(":hidden")) {
$('#' + this.id + 'def').css('visibility','visible')}

});

クリックすると#red#reddefスペースを維持したまま消えます。しかし、もう一度クリックしても何も起こりません。atm が欠けているものが少しあると思いますが、何がわかりません。

4

2 に答える 2

1

作業フィドル: http://jsfiddle.net/rYYPb/

$('#red, #pink').on('click', function() {

    var $def = $('#' + this.id + 'def');
    if ($def.css('visibility') === 'hidden') {
        $def.css('visibility', 'visible')
    }
    else {
        $def.css('visibility', 'hidden');
    }

});

winterblood が言ったようにvisibility: hidden、jQuery の標準ではまだ「表示」されています。代わりに、実際にhiddenスタイルがあるかどうかを確認できます。

于 2013-09-29T23:26:41.713 に答える