全局变量值不分配内部功能

时间:2014-04-19 18:02:16

标签: javascript jquery html

当我通过#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")
}

2 个答案:

答案 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!');
});