首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为事件生成函数

为事件生成函数
EN

Stack Overflow用户
提问于 2017-10-02 17:19:16
回答 2查看 45关注 0票数 2

我想使用循环为事件生成函数。当然,在下面的例子中,当按下按钮时,它会给出值100而不是1。

代码语言:javascript
运行
复制
    <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函数的解决方案:

代码语言:javascript
运行
复制
    <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>

有没有更好的解决方案而不需要编写一个生成函数呢?

EN

回答 2

Stack Overflow用户

发布于 2017-10-02 17:27:52

你在寻找一个简单的计数函数吗?

代码语言:javascript
运行
复制
var count = (function() {
  var c = 0;
  return function() {
    return ++c;
  }
}());

document.getElementById('b1').onclick = function() {
  alert(count());
}
代码语言:javascript
运行
复制
<button id="b1">Click Me</button>

票数 0
EN

Stack Overflow用户

发布于 2017-10-11 17:46:18

哦,很抱歉给您造成了混乱。如果运行第一个代码片段,结果是100,但我希望它打印1,这是我绑定函数时的实际值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46522739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档