追加ボタンを介したカスタムユーザー入力に基づいて成長するソート可能なリストがあります。リストの上下の項目が最大です。そして最小値。値であり、それらがいつどこにドラッグされるかを知る必要があります。これを理解するために、Safari Inspector で「event」オブジェクトと「ui」オブジェクトを調べて、これらのオブジェクトに、取得した HTML オブジェクトの子のインデックス (番号) が含まれているかどうかを調べました。
これが私のコードです:
// Define the sorting settings/rules of the dsList (items list)
$('#dsList').sortable({
handle: '.handle',
cursor: 'move',
axis: 'y',
opacity: 0.7,
scroll: true,
start: function(event, ui) {
},
update: function(event, ui) {
// Find out if the first or last item was dragged
var firstDragged = false;
var lastDragged = false;
if ($(ui.item[0]).find('.firstItem').val() != undefined) {
firstDragged = true;
}
if ($(ui.item[0]).find('.lastItem').val() != undefined) {
lastDragged = true;
}
// Calculate the list values
var itemsCount = $('#dsList').children().length;
//console.log(itemsCount);
// Check if the first item dragged below the last
console.log(ui);
// Update list settings
updateListSettings();
// Refresh the list
updateList();
}
});
ここでの問題は、「this」が親 (#dsList) を表し、ドラッグしているオブジェクトの子番号が見つからないことです。要素が移動したピクセル数を計算し、その高さを計算することはできますが、将来のスケーラビリティの観点からはその考えは好きではありません。
親(#dsList)に基づいて、ドラッグされた要素のchildCountを取得する方法はありますか?