JSFiddle - React, Tailwind, and code Playground
HTML
<script src="http://documentcloud.github.com/underscore/underscore-min.js"></script>
<script src="http://documentcloud.github.com/backbone/backbone-min.js"></script>
<script src="http://cloud.github.com/downloads/wycats/handlebars.js/handlebars-1.0.rc.1.js"></script>
<ul id="rules-list"></ul>
<script id="tmp-list" type="text/x-handlebars-template">
<li><span class="id" title="{{id}}"></span>{{name}} -- {{id}}</li>
</script>
<div id="console"></div>
CSS
#rules-list {
margin-bottom: 30px;
}
#rules-list li{
border: 1px solid black;
margin: 5px;
padding: 7px;
width: 50px;
}
JavaScript
var util = {
log : function (message) {
$("#console").append(JSON.stringify(message)).append("<br />");
}
};
var templates = {
rule : Handlebars.compile($("#tmp-list").html())
}
var rules = {
render: function (rules) {
$.each(rules, function (i, aRule) {
$("#rules-list").append(templates.rule(aRule));
})
}
}
$(document).ready(function() {
rules.render([{"id": 1, "name": "a"},
{"id": 2, "name": "b"},
{"id": 3, "name": "c"}]);
$('#rules-list').sortable({
stop: function(event, ui) {
var ids = $("#rules-list li").map(function (i, elem) {
return $(elem).find(".id").attr("title");
}).get();
util.log(ids);
}
});
});