变量的计算结果总是false
Variable always evaluates to false
我正在学习jQuery,我只是测试事件和条件是如何工作的。我还使用velocity。js来制作动画。下面是代码:
$(function() {
$( "#navBar" ).click(function() {
var isOpen = false;
if (isOpen == false){
$( this ).velocity({ height: 300});
isOpen = true;
console.log(isOpen);
return false;
}
else{
$( this ).velocity({ height: 50});
isOpen = false;
console.log(isOpen);
}
});
});
我不知道为什么这不起作用。if条件得到执行,并记录到控制台中变量为true。但是在第二次点击之后,继续运行if条件并返回isOpen true。我不能执行else语句。
将isOpen
声明在click处理程序之外,因为将其置于处理程序内部将使其始终为false
。
var isOpen = false;
$( "#navBar" ).click(function() {
if (isOpen == false){
$( this ).velocity({ height: 300});
isOpen = true;
console.log(isOpen);
return false;
}
else{
$( this ).velocity({ height: 50});
isOpen = false;
console.log(isOpen);
}
});
});
因为每次isOpen = false;
都是在click
中声明的。所以请将其保留在click event
之外,如下所示:
$(function() {
var isOpen = false; //this here
$( "#navBar" ).click(function() {
if (isOpen == false){
$( this ).velocity({ height: 300});
isOpen = true;
console.log(isOpen);
return false;
}
else{
$( this ).velocity({ height: 50});
isOpen = false;
console.log(isOpen);
}
});
});
相关文章:
- 如果 a 为 false,则 if(a) === if(false)
- 如何在angularJS中编辑时,如果DB中的值为true,则设置复选框,如果值为false,则取消选中复选框
- 为什么我的JS"如果“;语句的求值结果总是为false
- 如果ng-if的计算结果为false,AngularJS会使我的模型数据无效
- 为什么 {} == false 的计算结果为 false,而 [] == false 的计算结果为 true
- 为什么Number.MIN_VALUE < -1219312(或任何小值)的计算结果为 false
- Javascript 布尔值:false && true 结果为 true
- 为什么 JavaScript JSON 的计算结果为 false
- window.jQuery==true的计算结果为false,尽管window.jQuery=false计算结果为tru
- I'm在if语句中使用小于比较器;然而,即使它不应该;t、 它的评估结果为false
- 为什么以下比较结果为false
- 如果([]== false)为真,为什么([]|| true)的结果是[]?
- JavaScript条件的计算结果为false
- 变量的计算结果总是false
- 是否“总是返回无序的结果”意味着“返回false”
- KnockoutJs 1.3测试版._destroy:false在UI上的结果与_destroy:true相同
- 为什么两个具有深度相等元素的数组的深度相等结果为false ?
- AngularJS:由于服务的异步性质,函数的计算结果总是为false
- XMLHttpRequest.打开第三个参数false不给php mysql在iPad上的查询结果
- Javascript控制台日志在if语句计算结果为false后自行清除