javascript - addEventListener怎么动态传入带参数函数?
phpcn_u1582
phpcn_u1582 2017-05-18 10:50:01
0
5
779

有个未采纳的「潇潇雨歇」的答案,也有用,只是我现在还不知道let的具体用法。在此表示歉意,我也好想采纳两个。

结果肯定是
click button1 alert(3)
click button2 alert(3)

怎么修改代码使得
click button1 alert(1)
click button2 alert(2)

感觉这个问题跟settimeout的闭包经典问题有点像,但是我又想不到什么解决办法。

求指点。

phpcn_u1582
phpcn_u1582

全部回复(5)
phpcn_u1582
function myclick(i){
    return function(){
         alert(i)
    }

第二个参数传myclick(i)

PHPzhong

把参数保存在每个button元素的属性里。
或者用let

我想大声告诉你

<button id='myButton1' data-info='abc'></button> 点击按钮后,获得button的属性data-info中的属性

曾经蜡笔没有小新

jquery一般来说就是操作DOM,渲染的时候拼接在dom上一般是data-*的格式,然后获取出来再用$(this).attr(key)

过去多啦不再A梦

将var 改为 let 即可

 window.onload = function () {
      for (let i = 1; i < 3; i++) {
        document.getElementById('myButton' + i)
          .addEventListener('click', () => {
            myClick(i)
          })
      }
    }
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!