Cześć. Mam listę i listę mogę zaznaczać. Oraz mam dwa przyciski góra dół. Kiedy je klikam zmienia się pozycja zaznaczonego elementu. I czasami mam tak tak że zmienia się pozacyja i zaznaczenie przechodzi na inny element a chciałbym aby to aznaczenie było cały czas na elemencie listy a pozycja elementu się zmieniała. Kod wygląda tak można to jakoś poprawić
function moveSelectedArtist(productId, productType, discIndex, trackIndex, dstIdx) {
var listView = $("#ArtistsListView").data("kendoListView");
var dataSource = listView.dataSource;
var oldListData = dataSource.data().map(function(item) {
return item;
});
var srcUid = listView.select().data("uid");
var srcItem = dataSource.getByUid(srcUid);
var newListData = dataSource.data().filter(function(item) {
return item != srcItem;
});
newListData.splice(dstIdx, 0, srcItem);
var isArtistOrderCorrect = checkIsArtistOrderCorrect(oldListData, newListData);
if(isArtistOrderCorrect) {
dataSource.remove(srcItem);
dataSource.insert(dstIdx, srcItem);
$('#ArtistsListView').closest('.listViewContent').data("selected-artist-index", dstIdx);
$("#ArtistsListView").data("kendoListView").select($("#ArtistsListView").data("kendoListView").element.children()[dstIdx]);
}
var listData = {
productId: productId,
productType: productType,
discIndex: discIndex,
trackIndex: trackIndex,
productArtists: JSON.stringify(dataSource.data())
};
saveArtistsInOrder(listData);
}
function moveSelectedArtistUp(productId, productType, discIndex, trackIndex) {
var dstIdx = $("#ArtistsListView").data("kendoListView").select().index() - 1;
if (dstIdx >= 0) {
moveSelectedArtist(productId, productType, discIndex, trackIndex, dstIdx);
}
}
function moveSelectedArtistDown(productId, productType, discIndex, trackIndex ) {
var listView = $("#ArtistsListView").data("kendoListView");
var dataSource = listView.dataSource;
var dstIdx = listView.select().index() + 1;
if (dstIdx < dataSource.total()) {
moveSelectedArtist(productId, productType, discIndex, trackIndex, dstIdx);
}
}