Можно ли вызывать fancybox в классе? - PullRequest
0 голосов
/ 19 ноября 2011

Я не могу вызвать fancybox для такого элемента:

$(this).parent().parent().parent().find('.comments').fancybox();

Разве это не возможно? Это из-за того, что это класс вместо идентификатора?

У меня есть несколько рядов предметов, поэтому невозможно иметь идентификаторы для всех них.

Любой совет? Вот весь код JS (здесь работает show (), но fancybox () не работает):

$(".action").click(function(e) {
        e.preventDefault();
        $(this).parent().parent().parent().find('.comments').show();
        return false;
    });

Ответы [ 3 ]

3 голосов
/ 19 ноября 2011

Вы называете это неправильно; попробуйте следующее:

$('.action').click(function(e){
    e.preventDefault();
    target = $(this).closest('.comments').html();
    $.fancybox({
        content: target
        // More Options
    });
    return false;
});

Надеюсь, это поможет!

1 голос
/ 19 ноября 2011

Вызов .fancybox() для элемента только инициализирует fancybox. Лучший способ реализовать это зависит от вашего HTML, который вы не опубликовали.

Но как бы то ни было, это решение должно работать:

$(".action").click(function(e) {
    e.preventDefault();

    var a = document.createElement('a');
    var jqA = $(a);

    jqA.fancybox({
        content: $(this).parent().parent().parent().find('.comments').html()
        // other options go here
    });

    jqA.click();

    return false;
});
0 голосов
/ 19 ноября 2011

просто используйте

$(this).closest('.comments').fancybox();

функции внешнего нажатия.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...