Как отсоединить fancybox от селектора - PullRequest
9 голосов
/ 29 декабря 2011

У меня есть якорная ссылка с классом, который идентифицирует ее для вызова на fancybox.пример:

<a class="group">some code here</a>

Привязка Fancybox:

$('.group').fancybox();

Если я хочу отменить привязку fancybox с элементами, выбранными $ ('. group'), как мне это сделать?Я пытался removeClass('group'), но он не работает.

Ответы [ 4 ]

5 голосов
/ 29 марта 2012
$('.group').unbind('click.fb')
1 голос
/ 09 апреля 2015

Вы можете добавить класс "nofancybox" к ссылке, и эта ссылка будет игнорироваться

0 голосов
/ 14 марта 2015

Вот решение, которое сработало для меня, однако оно не освобождает 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);

Надеюсь, это кому-нибудь поможет.

0 голосов
/ 29 декабря 2011

Если вы хотите сделать это в коде JavaScript, вы можете выбрать объект тега привязки и удалить класс.

Присвойте элемент идентификатору и вызовите метод removeClass

<a id="noFancy" class="group">some code here</a>

Java Script

 $(function(){
     $("#noFancy").removeClass("group");

 });

Если у вас есть доступ к разметке HTML, почему бы просто не перейти к классу на что-то другое, но с теми же значениями CSS.тогда вам не нужно выполнять код для удаления класса на documentready

HTML

<a class="groupNormal">I dont want fancybox</a>

CSS

.groupNormal
{
  // Put the CSS for group class
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...