Adakah Perlukah Semua Acara jQuery Terikat kepada $(dokumen)?
Dalam perbincangan terperinci ini, persoalan sama ada semua acara jQuery harus terikat pada objek dokumen $(dokumen) diperiksa.
Kebimbangan dan Pertimbangan
Poster pada mulanya mengikat acara secara langsung kepada elemen tertentu menggunakan:
$('.my-widget a').click(function() { $(this).toggleClass('active'); });
Kemudian, mereka mengetahui tentang faedah persembahan yang sepatutnya bagi perwakilan acara:
$('.my-widget').on('click','a',function() { $(this).toggleClass('active'); });
Bagaimanapun, kaedah ini gagal dalam mengendalikan elemen yang ditambah secara dinamik. Untuk menyelesaikan isu ini, poster mula melampirkan semua acara pada $(dokumen), seperti berikut:
$(document).on('click.my-widget-namespace', '.my-widget a', function() { $(this).toggleClass('active'); });
Pendekatan ini memenuhi keperluan mereka untuk mengendalikan kandungan dinamik, faedah acara, prestasi pantas dan pengurusan mudah.
Jawapan dan Pertimbangan
Bertentangan dengan pemikiran awal poster, mengikat semua acara kepada $(document) tidak disyorkan. Berikut ialah sebab mengapa:
Amalan Terbaik untuk Acara Mengikat
Untuk mengoptimumkan pengendalian acara, ikut garis panduan ini:
Ringkasnya, walaupun delegasi acara menawarkan kelebihan tertentu, adalah penting untuk menggunakannya secara terpilih dan mengikat peristiwa pada tahap yang sesuai dalam pepohon DOM untuk prestasi optimum.
Atas ialah kandungan terperinci Patutkah Anda Sentiasa Mengikat Semua Acara jQuery kepada $(document)?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!