Ich habe eine Funktion zum Sortieren von Elementen basierend auf dem Datum und der Klasse des Listenelements. Es ist spät und ich bin müde und frustriert, also nicht sicher, was ich hier vermisse.jquery Sortierfunktion und prepend/insertAfter?
Die Funktion sollte zuerst feststellen, ob die Klasse .pinned
ist und sie nach Datum sortieren und sie an den Anfang der Liste einfügen.
Dann sollte es auf das Datum des Artikels (in Datendatum gefunden) und wenn es früher als heute ist, fügen Sie die Klasse .past
sortieren sie nach Datum, und fügen Sie sie nach den festgelegten Elemente.
Schließlich sollte es die restlichen Elemente sortieren und nach dem letzten Element mit der Klasse von .past
hier einfügen ist der Code:
//sort todo list-items by type and then date
function sortTodo() {
var itemDate = "";
var date = new Date();
$(".todo-list-item").each(function() {
var itemDate = new Date($(this).data("date"));
if($(this).hasClass('pinned')) {
$(".todo-list-item.pinned").sort(function(a,b) {
return date > itemDate;
}).each(function() {
$(".todo-list").prepend(this);
})
} else if(date > itemDate) {
$(this).addClass("past");
$(".todo-list-item.past").sort(function(a,b) {
return date > itemDate;
}).each(function() {
$(".todo-list").prepend(this);
})
} else {
$(".todo-list-item").not(".pinned, .past").sort(function(a,b) {
return date > itemDate;
}).each(function() {
$(".todo-list").append(this);
})
}
});
}
$(document).ready(function() {
sortTodo();
});
ab jetzt Das Skript platziert keine gepinnten Elemente nicht wie gewünscht nach oben, es sei denn, ich füge ein neues angeheftetes Element hinzu und sortiert nicht nach Datum, nachdem eine Elementklasse geändert oder entfernt wurde.
Was ist das Ergebnis, wenn Sie eine Aufgabe gleichzeitig ausführen? – guest271314
Wenn Sie meinen, dass jede Bedingung ohne die anderen ausgeführt wird, werden sie korrekt sortiert und fixiert –