Я пытаюсь создать простую 3-х сетчатую галерею, изображения внутри нее все с разной высотой, и я был после плиточной галереи... Поэтому я создал тот, который работает с немного JavaScript.
Однако, когда я попытался добавить еще одну галерею на той же странице, произошло что-то странное, живое превью здесь: http://loai.directory/test/gallery
HTML, CSS и JS можно найти полностью в этом jsfiddle: http://jsfiddle.net/aY5Gu
Как вы можете видеть в режиме предварительного просмотра, все gridElemetns в grid3 добавляются к grid3 во всех галереях ThreeGrid! После попытки отладки я пришел к выводу, что проблема связана с JS:
//Three Grids System
var gridElement = $(".gridElement", ".grid3");
GalleryGrid(); $(window).resize(GalleryGrid);
function GalleryGrid() {
var grid3 = $('.threeGrids .grid3');
var width = $(window).width();
if (width < 1024 && width > 770) {
var grid1 = $('.threeGrids .grid1');
var grid2 = $('.threeGrids .grid2');
for (var i = 0; i < gridElement.length; i++) {
if (i < gridElement.length / 2) {
grid1.append(gridElement[i]);
} else {
grid2.append(gridElement[i]);
}
}
} else {
grid3.append(gridElement);
}
}
Что происходит не так? Кажется, я не могу понять, что там не так.
Это потому, что .threeGrids
и .grid1
... появляются более одного раза на вашей странице. Поэтому jquery автоматически добавляет вещи всем из них.
Попробуйте выбрать что-то вроде:
$('.wrapper').each(
function(){
var grids = $(this).find('.threeGrids');
(...do manipulation with grids...)
}
);
Таким образом вы вводите каждый .wrapper
отдельно и обрабатываете только элементы, которые внутри него.