0

如果我在根时间轴上有一个实例名称为 box 的影片剪辑。在 MC 内部,我有一个彩色方形和以下代码:

myNum = 5;

编辑:为了得到任何回应,我在下面的行中也有任何回应:

var myNum = 3;

只是为了覆盖我所有的基础,但仍然没有任何一个值的输出响应 END OF EDIT。

在根时间线上我有:

this.box.addEventListener("click", clickHandler);

function clickHandler(e) {
    console.log(e.currentTarget.myNum);
}

这返回未定义。如何访问 myNum?

4

2 回答 2

0

请让我知道这是否适合您要完成的工作。

<button id="elem" data-mynum="3"> hello</button>

var elem = document.getElementById('elem');
elem.addEventListener("click", clickHandler);

function clickHandler(e) {
    console.log(e.currentTarget.dataset.mynum);
}

我们只需为节点分配一个数据属性,这样您就可以访问要附加到元素的任何数据

于 2018-01-19T15:42:59.457 回答
0

要访问对象内部的变量,该变量必须是对象的属性(键)。myNum不是的属性,e.currentTarget只是声明一个变量不会为任何随机对象提供属性...您必须在对象上设置属性,如下所示:

this.box.myNum = 3;
this.box.addEventListener('click', clickHander);
...

尽管正如Jose CC的回答所提到的,将自定义属性放在元素上并不是标准的(尽管它会起作用),并且应该使用data-属性来完成。

var box = document.getElementById('box');
box.dataset.myNum = 3;
box.addEventListener('click', clickHandler);

function clickHandler(e) {
  console.log(e.currentTarget.dataset.myNum);
}
<div id="box">My box</div>

于 2018-01-19T16:08:37.157 回答