2

有没有办法用 JSON 数组更新 jQuery flexbox 的结果?我已经创建了 flexbox,我想更新它的结果。

我按如下方式初始化我的 flexbox:

$('#myFlex').flexbox({  
        "results": [  
            { "id": "1", "name": "Ant" },  
            { "id": "2", "name": "Bear" }
        ]}, 
    {  
    allowInput: false,  
    paging: false,  
    maxVisibleRows: 8  
});

取自文档,并且有效。假设我想更新元素而不重新初始化 flexbox。如何才能做到这一点?

4

3 回答 3

3

好的,所以我自己破解了一个解决方案!

Flexboxo.source在初始化时通过变量设置数据。

我所做的是将(和访问)存储o.source为 jQuery .data()。这允许我查看/更改值。

于 2011-06-06T03:12:34.667 回答
1

在尝试同样的问题时,我发现 jQuery Flexbox 存储作为引用传递的数据。这意味着您可以这样做:

var data = {results: [{id:1,name:'Ant'},{id:2,name:'Bear'}], total:2};
$('#myFlex').flexbox(data);

// ...

data.results[data.total] = {id:3,name:'Cat'};
data.total++;

使用股票插件,它会工作。唯一要记住的是,您必须记住.total在添加新元素时也要更新属性。

于 2012-06-25T00:34:01.187 回答
0

您还没有指定如何初始化 flexbox 或如何取回数据。但是,根据文档演示results,当您指定 URL 时,命名的 JSON 属性用于获取数据行。这一切都应该自动发生。例如(直接来自文档):

$.ready(function() {  
    // results.aspx is the page that returns json data in the expected format  
    $('#fb').flexbox('results.aspx');   
});  

示例响应:

{"results":[  
    {"id":1,"name":"Ant"},   
    {"id":2,"name":"Bear"},  
    {...} // more results here...  
]} 

或者,您应该能够使用resultsProperty来指定不同的属性名称。

于 2011-06-05T04:39:10.610 回答