cari

Rumah  >  Soal Jawab  >  teks badan

javascript - Bagaimana untuk lulus secara dinamik dalam fungsi parameter untuk addEventListener?

Terdapat jawapan yang tidak diterima pakai untuk "Xiaoxiao Yuxie", yang juga berguna, tetapi saya belum tahu penggunaan khusus let lagi. Maaf, saya benar-benar mahu mengambil dua anak angkat.

Hasilnya pasti
klik butang1 alert(3)
klik butang2 alert(3)

Cara mengubah suai kod untuk membuat
klik butang1 alert(1)
klik butang2 alert(2)

Saya rasa masalah ini agak serupa dengan masalah penutupan klasik iaitu settimeout, tetapi saya tidak dapat memikirkan sebarang penyelesaian.

Sila beri saya nasihat.

phpcn_u1582phpcn_u15822736 hari yang lalu814

membalas semua(5)saya akan balas

  • phpcn_u1582

    phpcn_u15822017-05-18 10:52:01

    function myclick(i){
        return function(){
             alert(i)
        }

    Parameter kedua dihantar ke myclick(i)

    balas
    0
  • PHPz

    PHPz2017-05-18 10:52:01

    Simpan parameter dalam atribut setiap elemen butang.
    atau guna let

    balas
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-18 10:52:01

    <button id='myButton1' data-info='abc'></button> Selepas mengklik butang, dapatkan atribut dalam data-info

    balas
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-18 10:52:01

    Jquery secara amnya mengendalikan DOM Semasa rendering, ia biasanya disambungkan ke DOM dalam format data-*, dan kemudian ia diperoleh dan kemudian digunakan $(this).attr(key)

    .

    balas
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-18 10:52:01

    Tukar var kepada let

     window.onload = function () {
          for (let i = 1; i < 3; i++) {
            document.getElementById('myButton' + i)
              .addEventListener('click', () => {
                myClick(i)
              })
          }
        }

    balas
    0
  • Batalbalas