javascript - addEventListener怎麼動態傳入帶參數函式?
phpcn_u1582
phpcn_u1582 2017-05-18 10:50:01
0
5
858

有個未採納的「瀟瀟雨歇」的答案,也有用,只是我現在還不知道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的屬性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)
          })
      }
    }
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板