我在我的网站上创建了一个开关。它像灯开关一样工作。当人们点击它时,背景颜色和某些文本段落的颜色会切换为不同的颜色。我编写了下面的代码并成功完成了任务:
$(".clickme").click(function () {
$('html').css('background-color', 'black');
$('#top_nav a').css('color', '#ff7b00');
$('.back_face').css('background-color', 'black');
return false;
});
但现在我想重新开灯。我创建了一个名为lighton的var,并将其设置为0.我尝试使用if else语句来完成任务,但它不起作用。下面是我编写的代码并失败了:
<a href="" class="clickme">Click me</a>
<script>
$(".clickme").click(function () {
var lightoff = 0;
if (lightoff=0){
$('html').css('background-color', 'black');
$('#top_nav a').css('color', '#ff7b00');
$('.back_face').css('background-color', 'black');
lightoff = 1;
return false;
}else{
$('html').css('background-color', 'white');
$('#top_nav a').css('color', 'black');
$('.back_face').css('background-color', 'white');
lightoff = 0;
return false;
}
});
</script>
我最近刚开始学习JavaScript,并且检查了JavaScript Conditional Statements语法。所以我希望有人知道我的代码有什么问题。非常感谢你。
答案 0 :(得分:5)
您需要使用if (lightoff==0){
。
=
是赋值运算符,而==
是比较运算符。
在条件中使用赋值运算符时,将评估指定的值,因此(lightoff=0)
将始终计算为0
,然后将其转换为false
。在条件内使用赋值运算符的最常见情况是在分配函数的返回值时,例如, ( lightoff = checkIfLightIsOff() )
答案 1 :(得分:3)
由于您希望在多次调用回调方法时使用lightoff
的值,因此应该定义处理程序方法的范围,以便对该方法的多次调用将共享同一个{ {1}}
同样@zzlalani指出lightoff
运算符代表赋值,你需要的是比较运算符=
应该是
==
答案 2 :(得分:1)
我不是Javascript专家,但看起来你使用'='代替“==”,这会将变量设置为0而不是比较它。
答案 3 :(得分:0)
而不是=
您应该使用==
或===
:
=
是赋值运算符
==
等于ie,
x == 8假
x == 5 true
===
完全等于(等值和相等的类型)ie,
x ===“5”假
x === 5 true
其他一些案例:
'' == '0' // false 0 == '' // true 0 == '0' // true false == 'false' // false false == '0' // true false == undefined // false false == null // false null == undefined // true
答案 4 :(得分:0)
另一种方法是toggle事件
$(".clickme").toggle(function () {
$('html').css('background-color', 'black');
$('#top_nav a').css('color', '#ff7b00');
$('.back_face').css('background-color', 'black');
return false;
}, function() {
$('html').css('background-color', 'white');
$('#top_nav a').css('color', 'black');
$('.back_face').css('background-color', 'white');
return false;
});