隐藏的jQuery部门可见性不起作用

时间:2011-09-07 06:50:24

标签: javascript jquery

$("#id_btnquizzestwo").click(function() {
    $temp = $("#rightsideeightone").is(":visible");     
    if($temp) {
        $("#rightsideeightone").css('display') = 'none';    
    }
})

右侧的分裂并没有隐藏。

怎么办?

$("#id_btnquizzestwo").click(function() {
    $temp = $("#rightsideeightone").is(":visible");
    //alert($temp);

    if($temp) {
        $("#rightsideeightone").hide();         
    }

    $temp2 = $("#rightsideeighttwo").is(":hidden");
    //alert($temp2);

    if($temp2) {
        $("#rightsideeighttwo").show();
    }
})

我尝试了这个,右侧两侧是不可见的。最初,右侧是可见的,右侧是隐藏的。

<div id="rightsideeight" >
    <div id="id_pollsquizzes" >
        <?php echo '<ul>'; ?>
        <?php
            echo '<li>';
            echo $this->Form->button('Polls',array('type'=>'button','id'=>'id_btnpollstwo'));
            echo '</li>';
            echo '&nbsp&nbsp';

            echo '<li>';
            echo $this->Form->button('Quizzes',array('type'=>'button','id'=>'id_btnquizzestwo'));
            echo '</li>';
            echo '&nbsp&nbsp';
        ?>

    </div>

    <div id="rightsideeightone" style="visibility: visible" >
            ......................
    </div>

    <div id="rightsideeighttwo" style="visibility: hidden" >
            ......................
    </div>

</div>

4 个答案:

答案 0 :(得分:6)

该行

$("#rightsideeightone").css('display') = 'none';

不正确。要更改样式属性,请使用以下语法:

$("#rightsideeightone").css('display','none'); 

无需检查可见性 - 如果元素$(“#rightsideeightone”)已被隐藏,则再次隐藏它无效,因此您的函数可写为:

$("#id_btnquizzestwo").click(function() {
        $("#rightsideeightone").css('display','none');
});

答案 1 :(得分:3)

假设$temp变量等于false,您可以尝试:

$('#rightsideeightone').hide();

答案 2 :(得分:3)

所有三个解释都应该有效。但只是为了澄清:

使用此:

$("#rightsideeightone").css('display') = 'none';

由于.css('display')这是一个吸气剂而无效。在获取display属性的当前值时。所以你在这里做的首先是获取值(比如'block'),然后尝试为它分配一个新值('none')。它将等同于:(仅用于解释,实际上不起作用):

'block' = 'none';

您需要在元素上设置display 的值,而不仅仅是覆盖您获得的属性。因此使用jQuery setter:

$("#rightsideeightone").css('display','none'); 
// OR
$("#rightsideeightone").css({ display: 'none' });

我更喜欢后者。

希望我更加困惑地解释它:)

答案 3 :(得分:1)

http://jsfiddle.net/LQg7W/89/

.visible { display: block; }
.hidden { display: none; }

$("#id_btnquizzestwo").click(function() {

  if( $("#rightsideeightone").is(".visible") )
    $("#rightsideeightone").removeClass("visible").addClass('hidden');

  if( $("#rightsideeighttwo").is(".hidden") )
    $("#rightsideeighttwo").removeClass("hidden").addClass('visible');

});