从事件处理程序访问该数组

时间:2017-06-28 21:16:02

标签: javascript arrays function variables global

我是JavaScript的新手,我认为我很了解全局和局部变量的概念。

问题是:我在事件处理程序之外定义了一个数组maxVal。事件处理程序是“onclick”事件处理程序。它在我点击元素时运行。之后,我希望能够访问maxVal的新更新值,以便在名为UseValue的新函数中使用该值。 如何解决问题?

    var maxVal = []

    .on("click", function(d) {

    maxVal = Math.max.apply(null, newArray);
    }

   function UseValue {
//use the updated value of maxVal 
}

3 个答案:

答案 0 :(得分:0)

console.log(maxVal);语句放在事件处理程序中。否则,它在页面加载时运行,而不是在事件发生后运行。

function eventhandler () {
    do something with maxVal;
    console.log(maxVal);
}

您也可以在其他事件处理程序中使用该变量,只要这些事件在上述事件处理程序运行后发生。

答案 1 :(得分:0)

你可以告诉我们你的代码吗? 因为使用此处发布的代码,您可以定义一个存储空数组的变量,定义一个函数,并在控制台中显示您的变量。但你永远不会打电话给你的功能!

var maxVal = [];
function test() {
    maxVal.push(1);
    showValue();
};
test();
function showValue() {
    console.log(maxVal)
}

这应显示1

答案 2 :(得分:0)

  1. 您的函数名称没有大括号,应该是函数eventhandler(){}
  2. 在执行函数中的代码之前,必须将函数调用为eventhandler();