变量总是计算为 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 条件 得到执行并记录到控制台变量为真。但是在第二次点击后保持 运行 if 条件并返回 isOpen true。我无法执行 else 语句。
因为每次 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);
}
});
});
在单击处理程序外部声明 isOpen
,因为将其放在处理程序内部将使它始终 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);
}
});
});
我正在学习 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 条件 得到执行并记录到控制台变量为真。但是在第二次点击后保持 运行 if 条件并返回 isOpen true。我无法执行 else 语句。
因为每次 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);
}
});
});
在单击处理程序外部声明 isOpen
,因为将其放在处理程序内部将使它始终 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);
}
});
});