Apakah instance Fancybox memerlukan metode inisialisasi ulang?

Saya mencoba menginisialisasi ulang instance FancyBox setelah saya menghapus beberapa item dari halaman, tetapi tidak dapat menemukan metode yang tersedia untuk melakukannya; atau opsi apa pun untuk menginisialisasi ulang secara otomatis ketika DOM dimanipulasi. Apakah saya melewatkan sesuatu?

Masalahnya adalah ketika saya sekarang mengklik panah pada item yang dipakai dengan atribut rel="group", saya masih melihat konten 'dihapus'.

Saya menginisialisasi Fancybox di DOM Ready jQuery, seperti ini:

$(".fancybox").fancybox();

Elemen HTML terlihat seperti ini:

<a class="fancybox" rel="group" href="http://localhost/myimages/image-1.jpg"></a>
<a class="fancybox" rel="group" href="http://localhost/myimages/image-2.jpg"></a>

Saya menggunakan FancyBox Versi 2. Ada saran atau komentar?


person Theunis    schedule 13.05.2015    source sumber
comment
Secara teori, Anda tidak perlu melakukan apa pun setelah menghapus konten karena fancybox v2.x mendukung metode live untuk menambahkan/menghapus konten secara dinamis, tetapi itu tergantung pada apa yang Anda pahami dengan menghapus konten dan bagaimana Anda melakukannya jsfiddle.net/9g1onkvk   -  person JFK    schedule 14.05.2015
comment
@JFK, saya sebenarnya menghapus dan menambahkan item baru dengan AJAX. Tampaknya bagi saya bahwa penggunaan atribut rel=group tidak memperbarui 'indeks' item di lingkungan yang saya buat. Setelah menambah/menghapus beberapa item, secara kronologis 'halaman' tidak lewat saat mengklik tombol nav. Namun JSFiddle Anda, menggunakan atribut rel=gallery, melakukan apa yang saya perlukan. Terima kasih.   -  person Theunis    schedule 14.05.2015


Jawaban (1)


Fancybox 2 tidak menyertakan metode penghancuran atau pembaruan apa pun.

Oleh karena itu, Anda perlu mengaktifkan kembali metode Fancybox. Namun harap diperhatikan bahwa Anda harus menggunakan metode .unbind terlebih dahulu dan menghapus peristiwa apa pun pada elemen sebelum Anda menginisialisasi ulang Fancybox. Lihat - Bagaimana cara menghancurkan Fancybox? tentang cara meniru metode penghancuran.

Jawaban singkatnya, perbarui DOM Anda, lepaskan ikatan acara pada semua metode, lalu terakhir rebind dengan memanggil metode Fancybox lagi.

person James    schedule 13.05.2015
comment
Secara teori, Anda tidak perlu melakukan apa pun setelah menghapus konten karena fancybox v2.x mendukung metode live untuk menambahkan/menghapus konten secara dinamis sehingga mengaktifkan kembali metode fancybox adalah hal yang mubazir jsfiddle.net/9g1onkvk - person JFK; 14.05.2015
comment
@JFK Saya seharusnya menguji teori saya terlebih dahulu. Terima kasih telah berbagi ini, saya belajar sesuatu yang baru hari ini :) - person James; 14.05.2015