Catatan dari penulis (pie6k). Saya telah membuat lib ini beberapa tahun yang lalu dan saat itu bagus. Sekarang Anda mungkin sebaiknya tidak menggunakan jQuery untuk hal-hal seperti itu dan menggunakan React atau yang serupa. Terima kasih. — 21-11-2018
Laporan bug masih diterima.
Plugin jQuery.initialize
dibuat untuk membantu mempertahankan elemen yang dibuat secara dinamis pada halaman.
jQuery.initialize akan mengulangi setiap elemen yang cocok dengan pemilih dan menerapkan fungsi panggilan balik. Ia kemudian akan mendengarkan setiap perubahan pada Model Objek Dokumen dan menerapkan fungsi panggilan balik ke setiap elemen baru yang dimasukkan ke dalam dokumen yang cocok dengan pemilih asli.
$.initialize([selector], [callback]);
Hal ini memungkinkan pengembang untuk menentukan panggilan balik inisialisasi yang diterapkan setiap kali elemen baru yang cocok dengan pemilih dimasukkan ke dalam DOM. Ia juga berfungsi untuk elemen yang dimuat melalui AJAX.
Demo sederhana - klik di sini
$.initialize(".some-element", function() {
$(this).css("color", "blue");
});
Namun sekarang jika elemen baru yang cocok dengan pemilih .some-element
akan muncul di halaman, elemen tersebut akan langsung diinisialisasi. Cara item baru ditambahkan tidak penting, Anda tidak perlu peduli dengan panggilan balik apa pun, dll.
$("<div/>").addClass("some-element").appendTo("body"); //new element will have blue color!
Untuk menghentikan pengamatan terhadap dokumen, Anda dapat memutuskan koneksi pengamat dengan memanggil disconnect()
pada instans MutationObserver
yang dikembalikan yang menghentikannya menerima pemberitahuan lebih lanjut hingga dan kecuali observe()
dipanggil lagi. . Misalnya,
var obs = $.initialize([selector], [callback]); // Returns MutationObserver
obs.disconnect();
target
Secara default, seluruh dokumen diamati untuk perubahan. Hal ini dapat mengakibatkan kinerja yang buruk. Node tertentu di DOM dapat diamati dengan menentukan target:
$.initialize(".some-element", function() {
$(this).css("color", "blue");
}, { target: document.getElementById('observe-this-element') });
Jika tidak, target akan default ke document.documentElement
.
observer
MutationObserverInit
khusus mungkin disediakan. Jika tidak disediakan, konfigurasi internal akan default.
Plugin didasarkan pada MutationObserver
. Ini akan berfungsi di IE9+ ( baca catatan di bawah ) dan setiap browser modern.
Catatan: Untuk membuatnya berfungsi di IE9 dan IE10 Anda harus menambahkan polyfill MutationObserver - seperti yang ada di sini: https://github.com/webcomponents/webcomponentsjs
Tes kinerja (terima kasih kepada @bezborodow dan @liuhongbo )
bower
dan npm
, tambahkan uji kinerja tingkat lanjut.