javascript - 使用输入从函数内部更改全局变量的值

标签 javascript

我有一个

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/

相关文章:

javascript - 输入类型日期错误的设置值

javascript - 计算每篇文章的高度和调整大小

javascript - 如何发送HttpRequest,返回Json数据并显示

javascript - 如何知道有多少异步调用正在等待处理

javascript - 我该如何修复 'Maximum call stack size exceeded' AngularJS

javascript - 我可以将 PHP 与 Javascript 结合使用吗?

javascript - 如何解决 Protractor 的 'this fails on your system' 错误?

JavaScript 键盘事件和比较

javascript - 与返回原始 html 相比,json 是否会增加任何开销?

javascript - 如何将文本文件读取为数组