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

有个未采纳的「潇潇雨歇」的答案,也有用,只是我现在还不知道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 학습자의 빠른 성장을 도와주세요!