Во-первых, почему вы используете такой код, откуда он взялся? Я видел этот паттерн несколько раз, и он совершенно неправильный.
Итак, давайте разберем ваш код на части, чтобы увидеть, что вы здесь делаете -
$(document).on("click", ".fancybox", function() {
- вы назначаете событие click каждому элементу, имеющему имя класса .fancybox
. Это событие клика будет делать следующее:
$('[data-fancybox]').fancybox({
- здесь вы назначаете событие щелчка для каждого элемента, имеющего атрибут данных data-fancybox
; и это событие клика запустит fancybox с пользовательскими настройками.
Вы видите проблему? Удалите $(document).on("click", ".fancybox", function() {
часть, и она должна работать нормально. В качестве альтернативы вы можете использовать метод $.fancybox.open()
, который немедленно запустит fancybox (вместо назначения события клика с помощью $(selector).fancybox()
)