有個未採納的「瀟瀟雨歇」的答案,也有用,只是我現在還不知道let的具體用法。在此表示歉意,我也好想採納兩個。
#結果肯定是click button1 alert(3)click button2 alert(3)
怎麼修改程式碼使得click button1 alert(1)click button2 alert(2)
感覺這個問題跟settimeout的閉包經典問題有點像,但是我又想不到什麼解決辦法。
求指點。
function myclick(i){ return function(){ alert(i) }
第二個參數傳myclick(i)
把參數保存在每個button元素的屬性裡。 或用let
點選按鈕後,取得button的屬性data-info中的屬性
jquery一般來說就是操作DOM,渲染的時候拼接在dom上一般是data-*的格式,然後取得出來再用$(this).attr(key)
將var 改為 let 即可
window.onload = function () { for (let i = 1; i < 3; i++) { document.getElementById('myButton' + i) .addEventListener('click', () => { myClick(i) }) } }
第二個參數傳myclick(i)
把參數保存在每個button元素的屬性裡。
或用let
點選按鈕後,取得button的屬性data-info中的屬性
jquery一般來說就是操作DOM,渲染的時候拼接在dom上一般是data-*的格式,然後取得出來再用$(this).attr(key)
將var 改為 let 即可