jQuery除法可见性隐藏不起作用

jQuery division visibility hidden is not working

本文关键字:不起作用 隐藏 可见性 除法 jQuery      更新时间:2023-09-26
$("#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();
    }
})

我试过了,rightsideeighttwo不可见。最初,rightsideeightone是可见的,rightsideeighttwo是隐藏的。

<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>

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

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

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

检查可见性是没有必要的-如果元素$("#rightsideeightone")已经被隐藏,那么再次隐藏它是没有效果的,所以你的函数可以写成:

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

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

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

这三种解释都应该成立。但只是为了澄清:

使用这个:

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

不工作,由于.css('display')这是一个getter。例如,获取display属性的当前值。你在这里做的基本上是首先获取值(比如说'block')然后尝试给它分配一个新值('none')。它相当于:(只是为了解释,实际上不起作用):

'block' = 'none';

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

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

我更喜欢后者。

希望我解释得更清楚一些。

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');
});