2011-06-05 41 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屬性。