jQuery 不会切换 css 属性?
jQuery won't toggle css property?
我知道有很多 jquery css 切换线程,但我采用了自己的方法,但我不明白为什么这不起作用:
<script>
$("#id").click(function(){
if($("#example").css("visibility"=="hidden"))
{
console.log("if reached");
$("#example").css( "visibility", "visible" );
console.log($("#example").css("visibility"));
}
else
{
$("#example").css( "visibility", "hidden" );
console.log("else reached");
console.log($("#example").css("visibility"));
}
})
</script>
在 FF 和 Chrome 中都尝试过,但根本行不通!
这是HTML:
<input id="id" type="text"></input>
<div id="example">Test Test Test </div>
检查 .css('color') 返回的颜色是不可靠的,它因浏览器而异。
Note that the computed style of an element may not be the same as the
value specified for that element in a style sheet. For example,
computed styles of dimensions are almost always pixels, but they can
be specified as em, ex, px or % in a style sheet. Different browsers
may return CSS color values that are logically but not textually
equal, e.g., #FFF, #ffffff, and rgb(255,255,255).
我认为最好的方法是使用 class 之类的
var $example = $("#example");
$("#id").click(function() {
$example.toggleClass('red');
if ($example.hasClass('red')) {
console.log('has red now');
} else {
console.log('default color');
}
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input id="id" type="button"></input>
<div id="example">Test Test Test</div>
试试这个。
Html代码:
<input id="id" type="button"></input>
<div id="example">Test Test Test </div>
Js代码:
$(function(){
$("#id").click(function(){
if( $('#example').is(':visible') ) {
$('#example').hide();
} else {
$('#example').show();
}
});
});
您的代码已经存在,只是语法错误,.css("visibility"=="hidden")
计算结果为 css(true)
。您要检查 return,例如 .css("visibility")=="hidden"
<script>
$("#id").click(function(){
if($("#example").css("visibility")=="hidden"))
{
console.log("if reached");
$("#example").css( "visibility", "visible" );
console.log($("#example").css("visibility"));
}
else
{
$("#example").css( "visibility", "hidden" );
console.log("else reached");
console.log($("#example").css("visibility"));
}
})
</script>
我知道有很多 jquery css 切换线程,但我采用了自己的方法,但我不明白为什么这不起作用:
<script>
$("#id").click(function(){
if($("#example").css("visibility"=="hidden"))
{
console.log("if reached");
$("#example").css( "visibility", "visible" );
console.log($("#example").css("visibility"));
}
else
{
$("#example").css( "visibility", "hidden" );
console.log("else reached");
console.log($("#example").css("visibility"));
}
})
</script>
在 FF 和 Chrome 中都尝试过,但根本行不通!
这是HTML:
<input id="id" type="text"></input>
<div id="example">Test Test Test </div>
检查 .css('color') 返回的颜色是不可靠的,它因浏览器而异。
Note that the computed style of an element may not be the same as the value specified for that element in a style sheet. For example, computed styles of dimensions are almost always pixels, but they can be specified as em, ex, px or % in a style sheet. Different browsers may return CSS color values that are logically but not textually equal, e.g., #FFF, #ffffff, and rgb(255,255,255).
我认为最好的方法是使用 class 之类的
var $example = $("#example");
$("#id").click(function() {
$example.toggleClass('red');
if ($example.hasClass('red')) {
console.log('has red now');
} else {
console.log('default color');
}
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input id="id" type="button"></input>
<div id="example">Test Test Test</div>
试试这个。
Html代码:
<input id="id" type="button"></input>
<div id="example">Test Test Test </div>
Js代码:
$(function(){
$("#id").click(function(){
if( $('#example').is(':visible') ) {
$('#example').hide();
} else {
$('#example').show();
}
});
});
您的代码已经存在,只是语法错误,.css("visibility"=="hidden")
计算结果为 css(true)
。您要检查 return,例如 .css("visibility")=="hidden"
<script>
$("#id").click(function(){
if($("#example").css("visibility")=="hidden"))
{
console.log("if reached");
$("#example").css( "visibility", "visible" );
console.log($("#example").css("visibility"));
}
else
{
$("#example").css( "visibility", "hidden" );
console.log("else reached");
console.log($("#example").css("visibility"));
}
})
</script>