破解演示:http://jsfiddle.net/sTzCS/52/
如果你去小提琴,你应该能够将列表中的团队拖放到新的订单中。您还可以输入您认为每支球队在整个赛季中获得的积分值。完成重新排列后,jQuery会读取排序顺序,并且它还会尝试获取每个团队的输入值。
小提琴中的警报(我为测试目的创建的)应该显示您放在第一位置的团队以及您希望他们获得的积分数量。但是,警报没有触发。 jLint说代码是有效的。我正在使用警报来确保我实际上获得了正确的值。你能解释为什么警报不起作用吗?
<form<form id="new_entry">
<ul id="sortlist">
<li id="Vancouver">Canucks<input type="text" name="name" id="vanpoints"></li>
<li id="Toronto">Toronto<input type="text" name="name" id="torontopoints"></li>
<li id="Montreal">Montreal<input type="text" name="name" id="montrealpoints"></li>
<li id="Ottawa">Ottawa<input type="text" name="name" id="ottawapoints"></li>
<li id="Calgary">Calgary<input type="text" name="name" id="calgarypoints"></li>
<li id="Edmonton">Edmonton<input type="text" name="name" id="edmontonpoints"></li>
<li id="Winnipeg">Winnipeg<input type="text" name="name" id="winnipegpoints"></li>
</ul>
<input type="submit" value="Add">
</form>
的jQuery
$("#sortlist").sortable({
stop: function(event, ui) {
result = $("#sortlist").sortable("toArray");
var attributes;
attributes = {
first: { team: result[0].id, value: result[0].children()[0].val() },
second : { team: result[1].id, value: result[1].children()[0].val() },
third: { team: result[2].id, value: result[2].children()[0].val() },
fourth: { team: result[3].id, value: result[3].children()[0].val() },
fifth: { team: result[4].id, value: result[4].children()[0].val() },
sixth: { team: result[5].id, value: result[5].children()[0].val() },
seventh: { team: result[6].id, value: result[6].children()[0].val() }
};
alert(attributes.first.team + attributes.first.value);
}
});
答案 0 :(得分:1)
$("#sortlist").sortable("toArray")
返回一个可排序项ID'数组,它是一个字符串数组。
字符串没有id
属性和children
方法。