Javascript jQuery分区可见性隐藏不起作用
右侧八音分区没有被隐藏 怎么办Javascript jQuery分区可见性隐藏不起作用,javascript,jquery,Javascript,Jquery,右侧八音分区没有被隐藏 怎么办 $("#id_btnquizzestwo").click(function() { $temp = $("#rightsideeightone").is(":visible"); if($temp) { $("#rightsideeightone").css('display') = 'none'; } }) 我试过了,右边的第二个不可见。最初,右侧八音可见,右侧八音两个隐藏 $("#id_btnquiz
$("#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();
}
})
......................
......................
假设$temp
变量等于false,您可以尝试:
<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 '  ';
echo '<li>';
echo $this->Form->button('Quizzes',array('type'=>'button','id'=>'id_btnquizzestwo'));
echo '</li>';
echo '  ';
?>
</div>
<div id="rightsideeightone" style="visibility: visible" >
......................
</div>
<div id="rightsideeighttwo" style="visibility: hidden" >
......................
</div>
</div>
线路
$('#rightsideeightone').hide();
这是不正确的。要更改样式特性,请使用以下语法:
$("#rightsideeightone").css('display') = 'none';
检查可见性是没有必要的-如果元素$(“#rightsideeightone”)已经隐藏,那么再次隐藏它没有任何效果,因此您的函数可以写成:
$("#rightsideeightone").css('display','none');
这三种解释都应该有效。但我想澄清一下: 使用此选项:
.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');
});
由于.css('display')
这是一个getter,因此无法工作。如中所示,获取显示
属性的当前值。因此,您在这里基本上要做的是首先获取值(比如“block”),然后尝试为其分配一个新值(“none”)。这相当于:(只是为了解释,实际上不起作用):
您需要在元素上设置display的值,而不仅仅是覆盖您得到的属性。因此,请使用jQuery setter:
'block' = 'none';
我更喜欢后者
希望我解释得更清楚一些:)我已经编辑了原始问题/帖子。右侧的Eighttwo不可见。最初,RightSideEightTone是可见的,rightsideeighttwo是隐藏的。我认为$temp2=$(“#rightsideeighttwo”)。是(“:hidden”);将始终返回false:不应该是$temp2=$(“#rightsideeighttwo”)。是否(“:visible”)?我已编辑了原始问题/帖子。右侧的Eighttwo不可见。最初,右侧八音可见,右侧八音两个隐藏。我已编辑了原始问题/帖子。右侧的Eighttwo不可见。最初,RightSideEightTone是可见的,rightsideeighttwo是隐藏的。$(“#rightsideeighttwo”).css({visibility:'visible'});它不工作,它不可见。$(“#rightsideeighttwo”).css({visibility:'visible'});我无法使其可见。
显示
和可见性
针对不同的属性。如果使用display:'none'
则使用display:'inline
或display:'block
来显示它。因此,如果使用可见性
在可见/隐藏
之间切换。我已经编辑了原始帖子/问题和html代码来理解。这个字符串生成了什么html?echo$this->Form->button('Polls',array('type'=>'button','id'=>'id\u btnpollstwo');而且你还没有关闭ul元素。@Webars,这就是你要找的吗?
$("#rightsideeightone").css('display') = 'none';
'block' = 'none';
$("#rightsideeightone").css('display','none');
// OR
$("#rightsideeightone").css({ display: 'none' });