Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk Menggunakan Fancybox dengan Elemen Ditambah Secara Dinamik?

Bagaimana untuk Menggunakan Fancybox dengan Elemen Ditambah Secara Dinamik?

DDD
DDDasal
2024-11-17 06:10:03582semak imbas

How to Use Fancybox with Dynamically Added Elements?

Mengikat Fancybox kepada Elemen Ditambah Secara Dinamik

Anda boleh menghadapi isu menggunakan Fancybox v1.3.4 dengan elemen yang ditambahkan secara dinamik pada dokumen. Ini kerana Fancybox mengikat kepada elemen statik sahaja.

Penyelesaian:

Langkah 1: Naik taraf kepada jQuery v1.7.x

Versi ini termasuk kaedah .on() yang membolehkan anda mengikat acara untuk ditambahkan secara dinamik elemen.

Langkah 2: Gunakan .on() dan acara focusin

Ikat kaedah .on() kepada elemen induk elemen kotak fancy anda. Acara focusin digunakan untuk memastikan Fancybox hanya mengikat elemen dalam fokus bekas induk.

Contohnya, jika elemen Fancybox anda mempunyai kelas "ajaxFancyBox" dan berada dalam bekas dengan id "container ":

$("#container").on("focusin", function() {
  $("a.ajaxFancyBox").fancybox({
    // Set your Fancybox options here
  });
});

Kaedah ini juga menyokong menentukan pilihan Fancybox berbeza untuk jenis kandungan:

$("#container").on("focusin", function() {
  $("a.ajaxFancyBox").fancybox({
    // Ajax options
  });

  $("a.iframeFancyBox").fancybox({
    // Iframe options
  });
});

Nota Penting untuk Chrome:

Dalam Chrome, menambahkan atribut tabindex pada semua elemen yang terikat pada Fancybox adalah perlu untuk menjadikan kaedah on() berfungsi :

<a tabindex="1" class="ajaxFancyBox" href="image01.jpg">...</a>
<a tabindex="1" class="ajaxFancyBox" href="image02.jpg">...</a>

Penyelesaian ini berfungsi untuk menambahkan kandungan baharu dan menggantikan kandungan sedia ada. Pastikan kandungan baharu ditambahkan dalam bekas yang menggunakan kaedah .on().

Atas ialah kandungan terperinci Bagaimana untuk Menggunakan Fancybox dengan Elemen Ditambah Secara Dinamik?. 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