Я работаю над сайтом, который использует кладку для размещения элементов в сетке. Когда конечный пользователь нажимает фильтр на веб-сайте, это функция, которая вызывается. Важно, чтобы я сразу сказал, что код на стороне сервера верен. Что не совсем верно, это код jQuery ниже.Почему мой код для добавления элементов в кладку дает мне «undefined is not a function»?
<script>
function filter(type) {
$.get("/storefront/?filter="+type, function(data) {
var $data = data;
$('.grid').children().remove();
$('.grid').masonry().append($data).masonry('appended', $data, true).masonry('layout');
});
}
Когда эта функция вызывается, сетка исчезает, ни нового, фильтрованной данных не появится, и я получаю следующее сообщение об ошибке в Chrome консоли для последней строки в функции.
uncaught typeerror: undefined is not a function
Что странно, а также доказательство того, что мой код на стороне сервера является правильным является то, что если я изменю:
$('.grid').masonry().append($data).masonry('appended', $data, true).masonry('layout');
к этому:
$('.grid').append($data);
Он загружает во всех данных и он отлично отформатирован, за исключением того, что вся сетка перемещается на 100 пикселей.
Строка кода, вызывающая ошибку, является точной копией многих проектов, в которых используется кладка, и она работает, поэтому я не понимаю, почему мой нет, я не знаю, является ли это простой синтаксической ошибкой или что-то более глубокое, чем это.
В качестве обходного пути я попытался просто уничтожить кладки и инициализировать новую, но я даже не уверен, как это сделать, потому что код для инициализации кладки в первую очередь находится внутри моей библиотеки Animonscroll.js , Вот та часть кода (которую я не могу выполнить).
animonscroll.js
imagesLoaded(this.el, function() {
// initialize masonry
new Masonry(self.el, {
itemSelector: 'li',
gutter: 14,
transitionDuration : 0
});
if(Modernizr.cssanimations) {
// the items already shown...
self.items.forEach(function(el, i) {
if(inViewport(el)) {
self._checkTotalRendered();
classie.add(el, 'shown');
}
});
являются сценарии должным образом загружены .. ?? – Outlooker