我有这个简单的onclick事件函数,我想知道是否可以访问其中的变量并在此函数之外使用它,如果没有办法做类似的事情?
document.querySelector('.check-parent').addEventListener('click', function() {
var a = 'abc';
return a;
});
console.log(a);
P.S。
在我的主页代码中,我有3个表单,每个表单都有一个id,如果字段未正确完成,则需要显示错误。当我点击提交时,我得到了父ID,并且该id进入了切换功能,并确定了表单,以及需要显示哪些错误
答案 0 :(得分:0)
你必须得到一些正确的答案:
由于范围发生变化,此变量会在回调内部发生变化。 因此将此外部绑定到您的clickhandler(下面代码段中的 bind(this))
console.log(a)不会打印undefined,因为它又在不同的范围内。 只有在执行单击事件后才需要触发此调用。因此将其包装在一个功能和放大器中。通过传递值来从处理程序中调用它。( this.fromClick(innerVariable)在下面的代码段中)
以下是一个示例代码段(ES5 demo& ES6 demo):
this.count =0;
document.getElementById('myButton').addEventListener('click', function() {
//Access outer variables
this.count++;
document.getElementById('buttonCount').innerHTML = this.count;
//Send something outside
var innerVariable = 'String from click handler!!';
this.fromClick(innerVariable);
}.bind(this));
this.fromClick = function (innerVariable) {
alert(innerVariable);
}