Добавить плагин jQuery colorbox к динамически создаваемому элементу
обычный способ назначения функциональности цветового поля по ссылке выглядит так:
$("a.colorbox").colorbox({ transition: "elastic" });
новые добавленные элементы не связаны таким образом.
как добавить colorbox в динамически созданный
элементы тоже?<a class="colorbox"></a>
6 ответов
на метод, описанный здесь жить-привязаться к click
событие на элементах, которые вас интересуют (например,.colorbox
в этом случае) и вызовите функцию библиотеки colorbox в обработчике:
$('.colorbox').live('click', function() {
$.colorbox({href:$(this).attr('href'), open:true});
return false;
});
вы также можете попробовать это:
$('.colorbox').live('click',function(e){
e.preventDefault();
$(this).colorbox({open:true});
});
Я думаю, что это немного чище, чем использовать
As live амортизируется, вы должны использовать on
$('body').on('click', '.colorbox', function() {
$('.colorbox').colorbox({rel: $(this).attr('rel')});
});
этот код также позволяет группировать.
этот пост старый, но это может помочь другим: решение simonthetwit в порядке, но вам нужно дважды щелкнуть ссылку триггера. Colorbox можно вызвать напрямую, поэтому это должно работать:
$( '.colorbox' ).live('click',function(e){
e.preventDefault();
$.colorbox({open:true});
//inline example
//$.colorbox({inline:true, width:"50%", href:"#inline_content"});
});
Ура!
вот решение, которое я нашел, чтобы избежать необходимости дважды щелкнуть ссылку, чтобы запустить событие:
$(document.body).delegate('.<my-class>', 'click', function(e) {
e.preventDefault();
$('.<my-class>').colorbox({<my-code>})
});
у меня была та же проблема, что и @sunburst, с необходимостью дважды щелкнуть ссылку триггера. Используется тот же код, но .delegate()
вместо .live()
. Решил все и очистил мой jQuery красиво!
хорошее объяснение здесь: http://www.alfajango.com/blog/the-difference-between-jquerys-bind-live-and-delegate/