Добавить плагин colorbox jQuery в динамически созданный элемент

Обычный способ назначить функциональность цветового блока по ссылке выглядит следующим образом:

$("a.colorbox").colorbox({ transition: "elastic" });

Недавно добавленные элементы не связаны таким образом.

Как добавить colorbox к динамически созданным элементам

<a class="colorbox"></a>
?

Ответы

Ответ 1

Метод описанный здесь, предназначен для привязки к событию click для интересующих вас элементов (таких как .colorbox) и вызовите библиотечную функцию colorbox в обработчике:

$('.colorbox').live('click', function() {
  $.colorbox({href:$(this).attr('href'), open:true});
  return false;
});

Ответ 2

Вы также можете попробовать следующее:

$('.colorbox').live('click',function(e){
    e.preventDefault();
    $(this).colorbox({open:true});
});

Я думаю, что это немного чище, чем с помощью команды fn.

Ответ 3

Поскольку live обесценивается, вы должны использовать на

$('body').on('click', '.colorbox', function() {
    $('.colorbox').colorbox({rel: $(this).attr('rel')});
});

Этот код также позволяет группировать.

Ответ 4

Этот пост старый, но это может помочь другим: Решение simonthetwit в порядке, но вам нужно дважды щелкнуть ссылку триггера. Colorbox можно вызвать напрямую, поэтому это должно работать:

$( '.colorbox' ).live('click',function(e){
        e.preventDefault();
        $.colorbox({open:true});
        //inline example
        //$.colorbox({inline:true, width:"50%", href:"#inline_content"});
});

Ура!

Ответ 5

Вот решение, которое я нашел, чтобы избежать необходимости дважды щелкнуть ссылку, чтобы запустить событие:

$(document.body).delegate('.<my-class>', 'click', function(e) {  
    e.preventDefault();  
    $('.<my-class>').colorbox({<my-code>})  
});

Ответ 6

У меня была та же проблема, что и @sunburst с необходимостью дважды щелкнуть ссылку триггера. Используется тот же код, но .delegate() вместо .live(). Решила все и очистила мой jQuery!

Хорошее объяснение здесь: http://www.alfajango.com/blog/the-difference-between-jquerys-bind-live-and-delegate/