当我通过#infobox div进行鼠标输入时,该值未指定为true。该值始终被指定为false!但是执行了console.log(“in”)段。我的代码有什么问题
var infoChk = false;
$("#infobox").mouseenter(function(){
console.log("in")
infoChk = true;
});
if(infoChk == false){
console.log("false")
}
else{
console.log("true")
}
答案 0 :(得分:1)
您的代码是正确的,但您正在以错误的方式检查变量的值。
为了向您显示您的变量设置正确,您可以执行以下代码。
var infoChk = false;
$("#infobox").mouseenter(function(){
console.log("in");
infoChk = true;
showVariableValue();
});
function showVariableValue() {
console.log(infoChk);
}
您可以在行动here in jsFiddle
中看到它答案 1 :(得分:0)
我认为你误解了自己的代码。
第一个代码块作为事件运行。每次你的鼠标进入div #infobox它都会被运行。但是,if语句只运行一次,返回false。这是因为代码会立即运行,并且您的鼠标很可能是开箱即用的。
尝试:
var infoChk = false;
$("#infobox").mouseenter(function()
{
infoChk = true;
console.log('Entered!');
}).mouseleave(function()
{
infoChk = false;
console.log('Leaved!');
});