Uruchomiłem wczoraj problem z selektorem jquery przypisanym do zmiennej i doprowadza mnie do szału.Jak mogę odświeżyć przechowywaną i snapshotowaną zmienną selektora jquery
Oto jsfiddle z testcase:
- przypisać .elem do mojego var obj
- dziennika oba odcinki do konsoli. Wynik => 4
- usunąć # 3 z DOM
- dzienniku obj do konsoli => usuniętą # 3 jest nadal istnieje, a długość jest wciąż 4. zorientowali się, że zapytanie jQuery jest snapshotted? do zmiennej i nie może? zostać zaktualizowany
- dziennika .elem do konsoli .. yep wynik => 3 i # 3 nie ma
- teraz zaktualizować .elem z nowym szerokości 300
- rejestrowania obj & obj.width daje mi 300 .. Więc migawka została zaktualizowana? Interesujące jest to, że 3 z 4 elementów div mają nową szerokość, ale usunięty # 3 nie ...
Kolejny test: Dodawanie elementu li do domtree i logowanie obj i .elem. .elem ma nowy i obj li nie, bo to nadal stary migawka
Czy nie ma sposobu, aby uaktualnić ten obj z nową zawartością? Nie chcę tworzyć nowego obiektu, ponieważ w mojej aplikacji jest wiele informacji zapisanych w tym obiekcie, nie chcę niszczyć ...
Dzięki za pomoc i wyjaśnienie! To zadziałało bardzo dobrze z wywołaniem .selector. Jest to wewnętrzna metoda jQuery? nie można znaleźć żadnej dokumentacji tego połączenia. W każdym razie ... Zmieniłem trochę kod i ustawiłem nowy setter dla tego licznika i nazwałbym go setCount ($ ... length), który działa również całkiem dobrze. – Ralk
@Ralk Właściwość '.selector' jest technicznie wewnętrzna tak. – Esailija
@Eailailija - nie działa tutaj: http://jsfiddle.net/nJeqf/ (Właściwość .selector została uznana za przestarzałą w jQuery 1.7). http://api.jquery.com/selector/ –