#jquery #function #colorbox
#jquery #функция #colorbox
Вопрос:
Я уже видел здесь вопросы, касающиеся этой проблемы, но у меня возникла другая проблема, когда я пытаюсь заставить ее работать.
С помощью следующего кода я хочу добавить имя класса в лайтбокс colorbox после его открытия.
По какой-то причине вторая функция (где выполняется .addclass) не работает (когда я проверяю код в firebug, он даже не вводит эту функцию).
$(document).ready(function(){
$(".box1").colorbox(function(){
$("#colorbox").addClass("box1");
});
});
Это что-то, чего мне не хватает, или я пытаюсь сделать это неправильно?
Спасибо, Ян
Ответ №1:
Обновить:
Более новые версии Colorbox поддерживают новый параметр className, который можно использовать для добавления дополнительных имен классов в colorbox.
Оригинальный ответ:
Вам нужно указать обратный вызов onOpen для colorbox следующим образом:
$(document).ready(function(){
$(".box1").colorbox({onOpen: function(){
$("#colorbox").addClass("box1");
}});
});
Также есть возможность прослушивать cbox_open
событие вместо использования обратного вызова — см. http://jacklmoore.com/colorbox / для получения дополнительной информации.
Комментарии:
1. Отлично, спасибо! Обратный вызов — это то, что мне нужно сейчас, поскольку я хочу вызвать colorbox из 3 разных элементов на странице и добавить другое имя класса для каждого colorbox. Я уверен, что мог бы сделать это более элегантным с прослушиванием событий, но рассмотрю это позже.
Ответ №2:
Попробуйте это, согласно разделу EventHook в ColorBox.
$(document).bind('cbox_complete', function(){
$("#colorbox").addClass("box1");
});
Ответ №3:
Это сделает свое дело, это новый атрибут:
$('.my-box').colorbox({className: 'my-class'});