如何将JSON工厂传递给函数?

时间:2014-01-17 15:58:50

标签: javascript wookmark

我正在使用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 个答案:

答案 0 :(得分:0)

您需要传递.wookmark()一个对象,而不是一个函数。调用时,getOptions()返回一个对象。当你执行$('#tiles li').wookmark(getOptions);时,插件不知道如何处理你传递它的函数,它想要一个对象。

试试这个:

$('#tiles li').wookmark(getOptions());