Rumah > hujung hadapan web > tutorial js > Bagaimana untuk mengalih keluar Pendengar Acara dari Dalam Takrifnya Sendiri dalam JavaScript?

Bagaimana untuk mengalih keluar Pendengar Acara dari Dalam Takrifnya Sendiri dalam JavaScript?

Mary-Kate Olsen
Lepaskan: 2024-12-05 14:13:11
asal
307 orang telah melayarinya

How to Remove an Event Listener from Within Its Own Definition in JavaScript?

Mengalih keluar Pendengar Acara dalam JavaScript

Dalam JavaScript, pendengar acara biasanya digunakan untuk bertindak balas terhadap interaksi pengguna. Walau bagaimanapun, mungkin terdapat keadaan apabila anda perlu mengalih keluar pendengar ini atas pelbagai sebab.

Masalah:

Anda ingin mengalih keluar pendengar acara dari dalam takrifan pendengar itu sendiri. Walau bagaimanapun, percubaan untuk menggunakan 'ini' dalam pendengar mengakibatkan ralat.

Penyelesaian 1: Fungsi Dinamakan

Untuk mengatasi masalah ini, gunakan fungsi bernama dan bukannya fungsi tanpa nama :

var click_count = 0;

function myClick(event) {
    click_count++;
    if (click_count == 50) {
        // Remove the event listener
        canvas.removeEventListener('click', myClick);
    }
}

// Add the event listener
canvas.addEventListener('click', myClick);
Salin selepas log masuk

Dalam penyelesaian ini, pembolehubah 'click_count' ditakrifkan di luar pendengar, memastikan keterlihatannya dalam fungsi. Selain itu, 'myClick' ialah fungsi bernama, yang membolehkannya dialih keluar kemudian.

Penyelesaian 2: Penutupan

Sebagai alternatif, anda boleh menggunakan penutupan untuk mencapai perkara ini:

var myClick = (function (click_count) {
    var handler = function (event) {
        click_count++;
        if (click_count == 50) {
            // Remove the event listener
            canvas.removeEventListener('click', handler);
        }
    };
    return handler;
})(0);

// Add the event listener
canvas.addEventListener('click', myClick);
Salin selepas log masuk

Dalam pendekatan ini, penutupan dibuat di sekitar pembolehubah 'click_count'. Fungsi 'pengendali' menambah pembilang dan mengalih keluar pendengar acara jika perlu.

Penyelesaian 3: Pembilang Individu

Jika setiap elemen memerlukan pembilangnya sendiri, gunakan penyelesaian ini :

var myClick = function (click_count) {
    var handler = function (event) {
        click_count++;
        if (click_count == 50) {
            // Remove the event listener
            canvas.removeEventListener('click', handler);
        }
    };
    return handler;
};

// Add the event listener with a unique click counter for each element
canvas.addEventListener('click', myClick(0));
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk mengalih keluar Pendengar Acara dari Dalam Takrifnya Sendiri dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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 terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan