Obecnie, gdy wyświetlam różne elementy za pomocą jQuery, ponownie je tworzę od zera i dodam do strony.Ponownie utwórz elementy informacyjne dla innego obiektu lub ukryj je?
Doszedłem do punktu, w którym chcę, aby użytkownik mógł zaznaczyć pole na jednym elemencie, a następnie kliknąć przycisk, aby zobaczyć różne informacje, a następnie móc się z powrotem przełączyć i zobaczyć wcześniejsze zaznaczone pole .
Ponieważ obecnie robię nowe elementy za każdym razem, gdy użytkownik się przełącza, nie jest to możliwe w prosty sposób.
Zastanawiam się, czy lepiej jest przerysować elementy lub zmodyfikować właściwość CSS display
.
Mogłem zobaczyć, dlaczego pomocne byłoby ukrywanie elementów, ale nie jestem pewien, czy zachodzi konieczność przechowywania ~ 150 elementów na ekranie i po prostu ich nie wyświetlać.
To, co mam tak daleko:
https://jsfiddle.net/W4Km8/7767/
Kod ten zmienia kolor wierszy informacje:
$("#table").on("click", ".on", function() {
$(this).removeClass("on");
$(this).addClass("off");
});
$("#table").on("click", ".off", function() {
$(this).addClass("on");
$(this).removeClass("off");
});
Problem polega na tym, że jeśli spojrzeć na inny zestaw wierszy informacyjnych a następnie wrócić, kolory rzędu są resetowane.
Jeżeli dane są pobierane z backend i masz do czynienia z widocznością elementów następnie zakończyć użytkownik nigdy nie dostanie zaktualizowane dane, dopóki nie odświeża stronę. Mimo że dane są statyczne, utrzymanie śladu właściwości elementów lub widoczności będzie bolesne. Niezły przykład tego, co próbujesz osiągnąć, pomoże! – Rayon
'display: none/display: block' może być jednym rozwiązaniem. Jeśli każdy element należy do jednego obiektu z tablicy, możesz zapisać zaktualizowane właściwości elementu jako klucze do obiektów i za każdym razem, gdy tworzysz je w pętli, możesz użyć tych właściwości do utworzenia elementu. – Rayon