Jquery событие не работает во второй раз, когда я называю это
У меня есть страница с галереей изображений, и я использую плагин jquery wookmark, с фильтрацией. Затем я хотел использовать также плагин colorbox (который wookmark уже предоставляет в качестве примера в своем плагине), и я смог присоединиться к colorbox и системе фильтров. Проблема в моей голове была, и когда я применил фильтр, и вместо 50 фотографий, которые нужно показать, было только 5 видимых, как я могу сказать, чтобы colorbox показывал только те 5?
Поэтому я инициализирую colorbox следующим образом:
$('li a').colorbox({
rel: 'lightbox', scalePhotos: true, maxWidth: '80%', maxHeight: '80%'
});
Затем, при событии щелчка фильтров, я подумал, что лучше всего при каждом щелчке убирать colorbox из всех изображений и снова инициализировать colorbox только для элемента внутри li с активным классом, например так:
var onClickFilter = function(event) {
var item = $(event.currentTarget), activeFilters = [];
item.toggleClass('active');
// Collect active filter strings
filters.filter('.active').each(function() {
activeFilters.push($(this).data('filter'));
});
handler.wookmarkInstance.filter(activeFilters, 'or');
//here i remove colorbox from every item
$.colorbox.remove();
//here i instantiate colorbox for active item
$('#tiles li.active a').colorbox({
rel: 'lightbox', scalePhotos: true, maxWidth: '80%', maxHeight: '80%'
});
}
И это вроде работает! Например, я загружаю страницу 100 изображениями, галерея colorbox показывает 100 изображений для показа; Я щелкаю по фильтру и получаю 10 видимых изображений, colorbox дает 10 изображений для показа, я нажимаю другой фильтр, чтобы добавить еще несколько изображений, я получаю 24 видимых изображения, colorbox обновляет его галерею до 24. Дело в том, если я снова нажму на тот же самый последний фильтр, чтобы отключить его, colorbox больше не видит только 10 изображений, но 24.
1 ответ
Ну, на самом деле то, что я написал, правильно. Если кто-то хотел бы использовать его, я рад помочь. Но я обнаружил, что моя проблема не та, которую я описал.
Плагин Wookmark, только добавляет и удаляет класс неактивный. Поэтому в js wookmark я не удалял класс active, когда элемент был неактивен. Они остаются с обоими классами, и поскольку у active нет свойств, я этого не видел. Спасибо за помощь (мозговой штурм)...