Javascript 如何捕获事件处理程序的返回值?

Javascript 如何捕获事件处理程序的返回值?,javascript,Javascript,是否可以在单击onclick函数后返回变量。 我知道这段代码不起作用,但是我如何才能得到由于onclick而在调用的函数中创建的变量a呢 myDiv.onclick=function(){ var a=20; 归还 } 控制台日志(a) myDiv一种解决方案是声明半全局/全局变量并在函数内编辑其值。像这样: let theValue; someElement.onclick = function(){ theValue = 15; }; if(typeof theValue !=

是否可以在单击
onclick
函数后返回变量。 我知道这段代码不起作用,但是我如何才能得到由于
onclick
而在调用的函数中创建的变量a呢

myDiv.onclick=function(){
var a=20;
归还
}
控制台日志(a)

myDiv
一种解决方案是声明半全局/全局变量并在函数内编辑其值。像这样:

let theValue;

someElement.onclick = function(){
    theValue = 15;
};

if(typeof theValue !== "undefined"){
    console.log(theValue);
}

但是,我不确定这是否是一个完美的解决方案。

一个解决方案是声明一个半全局/全局变量,并在函数中编辑其值。像这样:

let theValue;

someElement.onclick = function(){
    theValue = 15;
};

if(typeof theValue !== "undefined"){
    console.log(theValue);
}

但是,我不确定这是否是一个完美的解决方案。

如果为尚未声明的变量赋值,它将自动成为全局变量

让myDiv=document.getElementById(“myDiv”)
设btn=document.getElementById(“btn”)
myDiv.onclick=function(){a=20}
btn.onclick=function(){console.log(a)}
1.-点击

2. - cheak var
如果为尚未声明的变量赋值,它将自动成为全局变量

让myDiv=document.getElementById(“myDiv”)
设btn=document.getElementById(“btn”)
myDiv.onclick=function(){a=20}
btn.onclick=function(){console.log(a)}
1.-点击

2. - cheak var
由于DOM事件是由浏览器触发的,因此没有调用代码来捕获中的
返回值。但是,如果您的目标是修改触发事件的元素的值,则只需更改元素的
textContent
,或者将所需的值放在范围更大的变量中,以后可以使用

//如果要在事件后访问值,
//在更高的范围内声明变量,以便
//在需要时访问它:
设a=null;
myDiv.onclick=函数(){
a=20;
//或者,如果只想用新值更新元素
//只需在元素中设置该值
this.textContent=a;
控制台日志(a);
}

myDiv
由于浏览器会触发DOM事件,因此没有调用代码来捕获中的
返回值。但是,如果您的目标是修改触发事件的元素的值,则只需更改元素的
textContent
,或者将所需的值放在范围更大的变量中,以后可以使用

//如果要在事件后访问值,
//在更高的范围内声明变量,以便
//在需要时访问它:
设a=null;
myDiv.onclick=函数(){
a=20;
//或者,如果只想用新值更新元素
//只需在元素中设置该值
this.textContent=a;
控制台日志(a);
}

myDiv
您希望在处理程序执行时通知消费者:

函数日志(x){
控制台日志(x);
}
document.querySelector('button')。onclick=function(){
对数(20);
};

单击
要在处理程序执行时通知消费者:

函数日志(x){
控制台日志(x);
}
document.querySelector('button')。onclick=function(){
对数(20);
};

单击
您的if语句将始终在值更改之前运行。如何运行?我已经测试了这个(我刚刚又测试了一次),if语句没有运行。只有定义了
时,它才会运行?当if语句运行时,永远不会定义该值,因为if语句将始终在分配value=15之前运行。您的意思是“被评估”而不是“被运行”,现在我明白您的意思了。当然,是的。这段代码并不打算直接运行,而是一个示例。if语句用于防止代码打印
undefined
。。。我能给出一个工作示例的唯一方法是,我以某种方式执行了一个不存在的元素的
onclick
方法。你还指望我怎么回复?我不能发布工作代码(如果不手动调用
onclick
,这是毫无意义的),那么指出我的代码不能“正常”工作又有什么帮助呢?我可以理解这种混乱。我很高兴现在一切都清楚了。在值更改之前,您的if语句将始终运行。如何?我已经测试了这个(我刚刚又测试了一次),if语句没有运行。只有定义了
时,它才会运行?当if语句运行时,永远不会定义该值,因为if语句将始终在分配value=15之前运行。您的意思是“被评估”而不是“被运行”,现在我明白您的意思了。当然,是的。这段代码并不打算直接运行,而是一个示例。if语句用于防止代码打印
undefined
。。。我能给出一个工作示例的唯一方法是,我以某种方式执行了一个不存在的元素的
onclick
方法。你还指望我怎么回复?我不能发布工作代码(如果不手动调用
onclick
,这是毫无意义的),那么指出我的代码不能“正常”工作又有什么帮助呢?我可以理解这种混乱。我很高兴事情现在都解决了。运行代码片段会显示页面的HTML,而不是控制台。。。所以我们看到的就是myDiv,这就是重点。。。你应该点击
myDiv
。我明白了。:)谢谢你向我的小脑袋解释。运行你的代码片段会显示页面的HTML,而不是控制台。。。所以我们看到的就是myDiv,这就是重点。。。你应该点击
myDiv
。我明白了。:)谢谢你向我的小脑袋解释。哇,这是一段非常有趣的代码片段。。。这是怎么回事?
a
是如何从o开始的