有没有办法在onclick事件中访问变量?

时间:2017-11-06 17:07:59

标签: javascript

我有这个简单的onclick事件函数,我想知道是否可以访问其中的变量并在此函数之外使用它,如果没有办法做类似的事情?

document.querySelector('.check-parent').addEventListener('click', function() {
    var a = 'abc';
    return a;
});
        
console.log(a);

P.S。

在我的主页代码中,我有3个表单,每个表单都有一个id,如果字段未正确完成,则需要显示错误。当我点击提交时,我得到了父ID,并且该id进入了切换功能,并确定了表单,以及需要显示哪些错误

1 个答案:

答案 0 :(得分:0)

你必须得到一些正确的答案:

  1. 由于范围发生变化,此变量会在回调内部发生变化。 因此将此外部绑定到您的clickhandler(下面代码段中的 bind(this)

  2. console.log(a)不会打印undefined,因为它又在不同的范围内。 只有在执行单击事件后才需要触发此调用。因此将其包装在一个功能和放大器中。通过传递值来从处理程序中调用它。( this.fromClick(innerVariable)在下面的代码段中)

  3. 以下是一个示例代码段(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);
    }
    
相关问题