私はjavascriptを使いました、だから私の問題は何かを理解する助けてください。if else文の助手が必要です
setTimeout(function() {
var wide = false;
if(wide = false) {
document.querySelector(".some-class").onclick = function() {
document.querySelector("#some-id").className += " MyClass";
wide = true;
};
}
else {
document.querySelector(".some-class").onclick = function() {
document.querySelector("#some-id").className =
document.querySelector("#some-id").className.replace(/\bMyClass\b/,'');
wide = false;
};
}
}, 1000);
これは機能しません(MyClassを追加しない)。しかし、私がちょうどこれを使用する場合:
setTimeout(function() {
document.querySelector(".some-class").onclick = function() {
document.querySelector("#some-id").className += " MyClass";
};
}, 1000);
それはうまく動作します。では、私のコードがうまくいかない問題は何ですか?
PS: ありがとうございます。この私が得たもの:
それが働いたsetTimeout(function() {
var wide = false;
if(wide == false) {
document.querySelector(".some-class").onclick = function() {
document.querySelector("#some-id").className += " MyClass";
wide = true;
};
}
else {
document.querySelector(".some-class").onclick = function() {
document.querySelector("#some-id").className =
document.querySelector("#some-id").className.replace(/\bMyClass\b/,'');
wide = false;
};
}
}, 1000);
が、今それが唯一のそれぞれのonclickイベントではMyClassを追加し、それを除去しません。私はelseifとのやり取りを試みて、wide = flase
とwide = true
をonclickイベントの外に移動しようとしましたが、これは同じです。
'wide == false'。比較には二重等価を使用してください。 – Jerry
'onclick'の関数がifステートメントの下にあるので、あなたのコードはまだ動作していません。したがって、最初の実行後にifステートメントは無効になります。より良いものにするには:クラスがワイドかどうかを検出し、それに基づいて特定のコードを実行する新しい関数に 'onclick'を設定してください。 – Jerry