【发布时间】:2018-05-21 11:28:45
【问题描述】:
我编写了简单的代码来在单击按钮后显示/隐藏一些图层(总共 5 个)并更改单击按钮的颜色。这很好用。但是后来我想显示某个元素 - 一个箭头 - 只有在使用布尔变量单击第一个按钮并且它不起作用之后,if 语句永远不会返回第一个(万岁)部分。我错过了什么?
var click01 = false;
function allowright1() {
if (click01 == true) {
console.log('hoooray');
$('#right_arrow').removeClass('hidden').addClass('visible');
} else {
console.log('not working');
}
};
$('#tile1_p1').click(function() {
if ($('#1layers1').css('display') == 'none') {
$('#1layers2, #1layers3, #1layers4, #1layers5').removeClass('block').addClass('none');
$('#tile2_p1, #tile3_p1, #tile4_p1, #tile5_p1').removeClass('orange');
$('#1layers1').removeClass('none').addClass('block'); $('#tile1_p1').removeClass('white').addClass('orange');
var click01 = true;
console.log('click01 ' + click01);
allowright1();
}
else if ($('#1layers1').css('display') == 'block') {
$('#1layers1').removeClass('block').addClass('none');
$('#tile1_p1').removeClass('orange').addClass('white');
}
});
【问题讨论】:
-
您需要在事件处理程序中使用
click01 = true;删除var -
使用
var click01,您正在声明变量,您正在为全局变量赋值,只需删除var关键字就完成了! -
@glutengo 请不要使用 W3Schools 作为参考。他们的文章经常过时,有时甚至完全是错误的。 MDN 更加全面和准确:developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
-
是的!在事件处理程序中删除“var”是解决方案,非常感谢大家:)
标签: javascript jquery function boolean