我使用sortable
对某些条目进行排序。它可以通过简单的位置编号正常工作,当拖放任何条目时,我可以更新这些位置编号并相应地显示。但我的问题是当用户拖动任何条目时我还想更新另一个时间参数。
我在这里创建了jsfiddle demo,以便您可以更好地了解我的问题。
最初它看起来很好
但是当我拖动任何条目时,它只会更新位置编号而不是时间。我也想要时间更新。
答案 0 :(得分:0)
正如Alex所建议的那样,你应该再次调用calculateTime。唯一的变化不是再次从输入中获取数据,而是可以将输入存储在变量中并从该变量中获取数据。
//Here you set the stored variable
var stored_starttime, stored_minuteperround;
$(document).ready(function() {
$("#timing").click(
function() {
//Here you set the value of the stored variable
stored_starttime = document.getElementById("stime").value;
stored_minuteperround = document.getElementById("rounds").value;
calculatetime(stored_starttime, stored_minuteperround);
}
);
});
$("#sortable_nav").sortable({
placeholder: "ui-state-highlight",
helper: 'clone',
sort: function(e, ui) {
$(ui.placeholder).html(Number($("#sortable_nav > li:visible").index(ui.placeholder)) + 1);
},
update: function(event, ui) {
var $lis = $(this).children('li');
$lis.each(function() {
var $li = $(this);
var newVal = $(this).index() + 1;
$(this).children('.sortable-number').html(newVal);
//Here you check if the stored variables are defined
if (stored_starttime !== undefined && stored_minuteperround !== undefined){
calculatetime(stored_starttime, stored_minuteperround);
}
});
}
});
$("#sortable_nav").disableSelection();
这是jsfiddle http://jsfiddle.net/zjhez393/5/