var foo = true;
// foo here is not being updated when set to false
if(foo) {
// and this will always work
$("#bar").on("click", function() {
alert("hello");
});
}
$("#set").on("click", function() {
alert("foo is now false");
foo = false;
});
<p id="bar">bar</p>
<input type="button" id="set" value="set to false" />
if(foo)
関数内に配置すると、正常に動作します。
しかし、ここでの状況は、複数のマウス操作でチェックする条件がさらにあるということif
です。各アクションに対して同じチェックを記述する必要があります...
$("#bar").on("mouseover", function() {
if(foo && bar && baz && qux) {
// do job A
}
}).on("mouseout", function() {
if(foo && bar && baz && qux) {
// do job B
}
}).on("click", function() {
if(foo && bar && baz && qux) {
// do job C
}
}).on("dblclick", function() {
if(foo && bar && baz && qux) {
// do job D
}
});
if
では、これを機能させるために、更新された foo を使用して 1 回だけ書き込むにはどうすればよいでしょうか。ここでフィドル