Как передать фабрику JSON в функцию?
Я использую https://github.com/GBKS/Wookmark-jQuery для создания динамического макета, я также прикрепляю функцию для изменения размера окна:
var $windowWidth = $window.width();
var options = {
itemWidth: 100,
autoResize: true,
container: $('#tiles'),
offset: 5,
outerOffset: 0,
flexibleWidth: '30%'
};
if ($windowWidth >= 768 && $windowWidth <= 1200) {
options.itemsize = 200;
options.offset = 7;
} else if ($windowWidth > 1200) {
options.itemsize = 300;
options.offset = 10;
}
$('#tiles li').woodmark(options); <-- this is fine
но я хочу создать функцию для возврата свойств:
function getOptions() {
var $windowWidth = $(window).width();
var sizes = {
itemsize: 100,
offset: 5,
autoResize: true,
outerOffset: 0,
flexibleWidth: '30%'
};
if ($windowWidth >= 768 && $windowWidth <= 1200) {
sizes.itemsize = 200;
sizes.offset = 7;
} else if ($windowWidth > 1200) {
sizes.itemsize = 300;
sizes.offset = 10;
}
return sizes;
}
$('#tiles li').wookmark(getOptions); <-- doesn't work
$('#tiles li').wookmark(function() { getOptions }); <-- doesn't work
все примеры кода в wookmark выполняются как плагин jquery, а обычная точка останова не работает в инспекторе chrome.
1 ответ
Решение
Вам нужно пройти .wookmark()
объект, а не функция. Когда звонили, getOptions()
возвращает объект. Когда вы делаете $('#tiles li').wookmark(getOptions);
плагин не знает, что делать с функцией, которую вы передали, он хотел объект.
Попробуй это:
$('#tiles li').wookmark(getOptions());