Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Menyalurkan Argumen kepada Fungsi addEventListener?

Bagaimanakah Saya Boleh Menyalurkan Argumen kepada Fungsi addEventListener?

Susan Sarandon
Susan Sarandonasal
2024-12-11 20:10:11294semak imbas

How Can I Pass Arguments to an addEventListener Function?

Cara Meluluskan Argumen ke addEventListener Listener Functions

Dalam senario di mana kita ingin menyampaikan hujah kepada fungsi pendengar acara, kita mungkin menghadapi situasi di mana hujah itu tidak boleh diakses dalam fungsi. Ini boleh berlaku apabila kita menetapkan pembolehubah kepada fungsi, seperti ini:

var someVar = some_other_function();
someObj.addEventListener("click", function(){
    some_function(someVar);
}, false);

Di sini, isunya ialah nilai someVar tidak tersedia dalam fungsi pendengar acara.

A Pendekatan Lebih Baik: Menggunakan Parameter Sasaran Acara

Untuk menyelesaikan masalah ini, kami boleh memanfaatkan atribut sasaran objek acara untuk mendapatkan semula parameter yang diluluskan kepada fungsi pendengar. Pertimbangkan contoh ini:

const someInput = document.querySelector('button');
someInput.addEventListener('click', myFunc, false);
someInput.myParam = 'This is my parameter';

function myFunc(evt)
{
    window.alert(evt.currentTarget.myParam);
}

Dalam kod yang diubah suai ini:

  • Kami menetapkan parameter kami ('Ini ialah parameter saya') kepada sifat myParam bagi elemen input.
  • Fungsi myFunc kami ditakrifkan di luar skop pendengar acara.
  • Apabila elemen input diklik, fungsi myFunc digunakan.
  • Dalam fungsi myFunc, kami boleh mengakses parameter kami melalui evt.currentTarget.myParam.

Pendekatan ini dengan berkesan membolehkan kami menyampaikan hujah kepada kami fungsi pendengar acara tanpa menghadapi isu asal.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyalurkan Argumen kepada Fungsi addEventListener?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Telefoni AwanArtikel seterusnya:Telefoni Awan