Ошибка с 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');
});