Ошибка с jquery .on и facebox

У меня есть элемент, который загружается из AJAX. С этим элементом я прикрепил Facebox.js. Когда элемент щелкается, он запускает Facebox. Поэтому я использовал:

$(document).on("click", "a[rel*=modal]", function() {
    $(this).facebox(); // Applies modal window to any link with attribute rel="modal"
});

Дело в том, что для запуска Facebox требуется дважды щелкнуть элемент. В качестве быстрого исправления я добавил:

$('a[rel*=modal]').trigger('click');

Таким образом, я могу щелкнуть элемент только один раз, чтобы вызвать. Есть ли лучший способ исправить?

1 ответ

Решение

Проблема в том, когда первый щелчок происходит facebox плагин не инициализирован, обходной путь - инициализировать плагин, а затем снова вызвать событие click

$(document).one("click", "a[rel*=modal]", function() {
    $(this).facebox().triggerHandler('click');
});
Другие вопросы по тегам