Dokonałem funkcji, z którą można zamienić wiersze w tabeli. Działa świetnie, ale po odświeżaniu strony, jeśli zamieniłem niektóre wiersze, wiersze wracają do miejsca, gdzie zostały przed wymianem. Chciałbym wiedzieć, dlaczego tak się dzieje i jak tego uniknąć. Jest to kod funkcji, jeśli ktoś go potrzebuje:
swapRows = function(rowTable) {
rowTable.find(".glyphicon-sort").click( function() {
row = $(this).closest("tr");
row.insertBefore( row.prev() );
} );
}
2 odpowiedzi
Dzieje się tak, ponieważ po orzeźwieniu Twoja strona powraca do swojego stanu początkowego (z serwera lub pamięci podręcznej), DUH.
Aby zachować stan, masz kilka opcji: AJAX (tak, że nie masz odświeżenia strony), czy manipulacja stanu HTML5 lub lokalna pamięć masowa itp., Które są poza zakresem tego pytania, którego się boję .
Dzieje się tak, ponieważ jQuery jest technologią po stronie klienta, a dane nie są utrzymywane między żądaniami. Po odświeżaniu strony nowej prośby do serwera, który z kolei odpowiada nową stroną (.html) z domyślnym stanem. Aby zapisać te dane między żądaniami, możesz użyć plików cookie.