4
ボタンをクリック(全部で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 'と' var'を削除する場合はtrue必要があります。 ''のvar click01'でイベントハンドラ – gurvinder372
に、あなたは変数を宣言している、あなたはグローバル変数に値を代入しているだけ取り出し 'VAR 'キーワードとあなたは完了です! – Rayon
変数スコープとクロージャを見てください。https://www.w3schools.com/js/js_function_closures.asp – glutengo