Вот решение, которое сработало для меня, однако оно не освобождает fancybox в том смысле, как спрашивающий хотел бы это сделать.
Во-первых, не объявляйте fancybox на узле, но вместо этого привязывайте узел к событию click
:
$(".classOfMiniImage").on("click", window.onImageMiniClicked);
В обработчике вы можете использовать свой код для проверки условий, нужно ли отображать fancybox или нет, а затем отображать его с явной ссылкой href
:
window.onImageMiniClicked = function () {
if (<your_condition>) {
$.fancybox({
'href': <link_to_full_size_image>,
/* other options below */
'transitionIn': 'elastic',
'transitionOut': 'elastic',
'speedIn': 600,
'speedOut': 600,
'overlayShow': true
});
}
}
Кроме того, вы можете использовать немного другой подход и отсоединить этот обработчик вручную, если вам больше не нужен fancybox для этих элементов:
$(".classOfMiniImage").off("click", window.onImageMiniClicked);
Надеюсь, это кому-нибудь поможет.