我想使用循环为事件生成函数。当然,在下面的例子中,当按下按钮时,它会给出值100而不是1。
<body>
<button id="b1">klickMeNow</button>
<script>
var i=1;
document.getElementById("b1").addEventListener("click", function() { alert(i);}, false);
var i=100;
</script>
</body>
我想出了这个使用generate函数的解决方案:
<button id="b1">klickMeNow</button>
<script>
var i=1;
document.getElementById("b1").addEventListener("click", generate(i), false);
var i=100;
function generate(i1) {
f = function () {alert(i1);};
return f;
}
</script>
有没有更好的解决方案而不需要编写一个生成函数呢?
发布于 2017-10-02 17:27:52
你在寻找一个简单的计数函数吗?
var count = (function() {
var c = 0;
return function() {
return ++c;
}
}());
document.getElementById('b1').onclick = function() {
alert(count());
}<button id="b1">Click Me</button>
发布于 2017-10-11 17:46:18
哦,很抱歉给您造成了混乱。如果运行第一个代码片段,结果是100,但我希望它打印1,这是我绑定函数时的实际值。
https://stackoverflow.com/questions/46522739
复制相似问题