Запретить Fancybox на отключенных изображениях - PullRequest
1 голос
/ 10 июля 2011

Я делаю сайт с сеткой фотографий, которые «фильтруются». Я звоню в fancybox с:

$(".popbox").fancybox();

Когда изображение отфильтровывается, оно получает класс «отключен». Обратите внимание, что страница не перезагружается.

<a class="popbox disabled" style="opacity: 0.3;">
<img alt="placeholder" src="_assets/images/placeholder.jpg">
</a>

Как сделать так, чтобы при нажатии на отключенное изображение fancybox не активировался? Мне также нужно, чтобы он снова работал при смене фильтра и повторном включении изображения.

Ответы [ 2 ]

2 голосов
/ 10 июля 2011

Вот один из способов сделать это ( demo ):

$(function() {
    $('.popbox').click(function() {
        if (!$(this).is('.disabled')){
            $.fancybox('<img src="' + $(this).attr('href') + '" height="333" width="500">');
        }
        return false;
    });
});

Обновление: А вот, вероятно, лучший способ сделать это, используя обратный вызов onStart ( демо ):

$(function() {
    $('.popbox').fancybox({
        onStart: function(link) {
            if ($(link).is('.disabled')) {
                return false;
            }
        }
    });
});
0 голосов
/ 10 июля 2011

Хм, попробуй:

$('.popbox:not(.disabled)').fancybox();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...