var funcs = [];
// let's create 3 functions
for (var i = 0; i < 3; i++) {
// and store them in funcs
funcs[i] = function() {
// each should log its value.
console.log("My value: " + i);
};
}
for (var j = 0; j < 3; j++) {
// and now let's run each one to see
funcs[j]();
}Run Code Online (Sandbox Code Playgroud)
它输出这个:
我的价值:3
我的价值:3
我的价值:3
而我希望它输出:
我的价值:0
我的价值:1
我的价值:2
使用事件侦听器导致运行函数的延迟时,会出现同样的问题:
var buttons = document.getElementsByTagName("button");
// let's create 3 …Run Code Online (Sandbox Code Playgroud)我目前正在尝试编写一些JavaScript来获取已被单击的类的属性.我知道要以正确的方式执行此操作,我应该使用事件侦听器.我的代码如下:
var classname = document.getElementsByClassName("classname");
var myFunction = function() {
var attribute = this.getAttribute("data-myattribute");
alert(attribute);
};
classname.addEventListener('click', myFunction(), false);
Run Code Online (Sandbox Code Playgroud)
每次我点击其中一个类告诉我属性时,我都希望得到一个警报框,但遗憾的是这不起作用.有人可以帮忙吗?
(注 - 我可以很容易地做到这一点jQuery,但我不喜欢用它)