2011-06-05 48 views
2

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

我初始化我Flexbox的如下:

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

这是taken from the documentation,和它的作品。假设我想更新元素而不重新初始化flexbox。如何才能做到这一点?

回答

3

好吧,所以我砍了自己的解决方案!

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

我所做的是将商店(和访问)o.source作为jQuery .data()。这使我可以查看/更改值。

+0

+1帮助你自己! – 2011-06-06 05:02:36

0

您尚未指定如何初始化Flexbox或如何获取数据。但是,根据documentationdemos,当您指定URL时,将使用名为results的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指定不同的属性名称。

+0

“你应该能够使用resultsProperty来指定一个不同的属性名称。”我怎样才能做到这一点? $(“#myid”)。results(results)does not work(resultsProperty =='results') – babonk 2011-06-05 19:58:06

+0

@babonk你可以发布1.如何初始化flexbox和2.你的回应是什么样的?这应该都是自动发生的。 – 2011-06-06 00:17:06

+0

更新了问题,告诉我是否有任何更多细节需要添加,我可以添加它们 – babonk 2011-06-06 00:28:05

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属性。