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() );
    } );

} 
0
Oleksandr Verhun 17 sierpień 2014, 15:28

2 odpowiedzi

Najlepsza odpowiedź

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ę .

2
An Phan 17 sierpień 2014, 11:34

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.

1
Shukhrat Raimov 17 sierpień 2014, 11:36