我正在嘗試使用tinysort作爲我使用jquery mobile構建的移動應用程序的一部分。我的應用程序在用戶位置附近找到位置,我希望能夠快速地對結果進行排序,而不必花費時間重新查詢數據庫。Tinysort按多個屬性排序(多於1)
所以,我想要做的就是能夠使用tinysort重新排序結果的基礎上,如果用戶有一個最喜歡的地方在該地區,然後通過距離,另外我想能夠按屬性排序「beenthere」如果用戶已標記他們去過某個地方。
這就是我想做的事: 按收藏:
$("ul#places>li").tsort('',({order:"desc",attr:"myfav"},{order:"asc",attr:"dist"}));
排序有去過:
$("ul#places>li").tsort('',({order:"desc",attr:"beenthere"},{order:"asc",attr:"dist"}));
排序默認://這是很簡單的工作沒有問題:
$("ul#places>li").tsort('',{order:"desc",attr:"dist"});
使用默認的列表順序如:
<ul id="places">
<li myfav="0" beenthere="0" dist=".02">Hot Dog Stand</li>
<li myfav="1" beenthere="0" dist=".08">Joe's Shack</li>
<li myfav="0" beenthere="1" dist=".10">Frick frack</li>
<li myfav="1" beenthere="1" dist=".15">Mama's</li>
</ul>
排序最愛應該返回:
- Joe的小屋
- 媽媽的
- 熱狗
- 弗裏克弗蘭克•
排序在那裏應該返回:
- 弗裏克弗蘭克•
- 媽媽的
- 熱狗
- Joe的小屋
然後回按距離排序:
- 熱狗
- Joe的小屋
- Frick frack
- 媽媽的
我呼籲tsort的上面就是不能與多個屬性選擇和工作無論是我的語法錯誤或不能超過一個標準排序。
任何想法,我怎麼可以用tsort或其他解決方案來完成這個想法是讚賞!
哦,我忘了提及,最好使用以'data-'開始的屬性更符合HTML5規範,所以使用'data-myfav','data-beenthere'和'data-dist'代替你現在擁有的東西。 – Mottie
偉大的解決方案 - 謝謝!我做的唯一的調整是我增加了999而不是9,因爲距離以英里爲單位,所以我想確保它總是正確排序。我也刪除了排序順序的切換。 – Joshua