我有一个
var imgSrc = false;
dom.getElByTag('img')[0].onclick = function(){
//set src of image
changeBool(dom.getElByTag('img')[0]);
}
function changeBool(n){
if(n.src ===="file/path"){
imgSrc = true;
};
console.log(imgSrc);
所以问题是imgSrc只在changeBool中本地更改,所以如果我console.log imgSrc它将返回false,无论我把它放在哪里(这可能是因为页面已经加载并确定imgSrc之前是false我通过 onclick 将其设置为 true,并且由于 javascript 一次运行一行,因此在我单击图像之前,它已将 console.log(imgSrc) 作为 false 运行。
所以,我需要:
将 bool 值声明为 false -> 单击图像,将 bool 值设置为 true -> console.logging bool 值(并看到 true)
但我现在正在做的是: 将 bool 值声明为 false -> console.logging 该 bool 值(并看到 false {因为它尚未设置为 true} -> 单击图像并将 bool 值设置为 true。
我该如何解决这个问题?
最佳答案
只需将日志语句移动到 changeBool
函数中,如下所示:
var imgSet = false;
dom.getElByTag('img')[0].onclick = function(){
//set src of image
changeBool(dom.getElByTag('img')[0]);
}
function changeBool(n){
if(n.src ===="file/path") imgSrc = true;
console.log(imgSrc);
};
关于javascript - 使用输入从函数内部更改全局变量的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42571742/