Мне нужна помощь, чтобы понять, почему работает первый набор кода, а второй код - нет.Понимание размещения закрывающих тегов
В первом наборе кода я могу перетаскивать элементы и все еще иметь их в режиме Packery при перетаскивании, что является результатом линии tree.packery()
. Во втором коде это не работает, то есть когда я перетаскиваю элементы, они не возвращаются в порядок.
Единственная разница в том, что в первом наборе кода методы draggable()
и tree.packery()
размещены в закрывающих тегах imagesLoaded. Что меня беспокоит, почему это необходимо, чтобы сделать работу tree.packery()
?
tree.packery()
находится внутри закрывающего тега imagesLoaded
var fruit = $('.fruit');
fruits.imagesLoaded(function() {
var tree = fruits.packery({
itemSelector: '.fruit',
columnWidth: 0,
});
fruit.draggable();
tree.packery('bindUIDraggableEvents', fruit); // this line works!
}); // imagesLoaded closing tag at the end
tree.packery()
является не внутри закрывающего тэга imagesLoaded
var fruit = $('.fruit');
fruits.imagesLoaded(function() {
var tree = fruits.packery({
itemSelector: '.fruit',
columnWidth: 0,
});
}); // imagesLoaded closing tag
fruit.draggable();
tree.packery('bindUIDraggableEvents', fruit);
// this line doesn't work this time
Это еще хуже. Помимо предотвращаемой асинхронной проблемы, переменная 'tree' определяется в пределах области функции обратного вызова, поэтому она даже не доступна для вызова функции' tree.packery() во втором блоке кода. – jfriend00
@ jfriend00, Хорошая точка. – bumpy
Думаю, я сейчас понимаю. Это как длинная улица с односторонним движением с одним выходом на обоих концах. Вдоль этой улицы код может забрать поручения, некоторые поручения требуют, чтобы он вернулся к этой точке улицы во второй раз (обратный вызов), но ему нужно пройти всю улицу, прежде чем она сможет вернуться. Обратный вызов может быть выполнен только в «второй поездке» из-за природы «односторонней улицы». Таким образом, любой код, который требует элемент, предоставленный обратным вызовом, не может быть помещен вне этой «второй поездки». – blurgoon