![]() ![]() |
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 348 Pomógł: 26 Dołączył: 8.10.2008 Skąd: Lublin Ostrzeżenie: (0%)
|
Jak wiadomo, on bardzo przydaje się gdy chcemy zaczepić event na elemencie dynamicznym, wystarczy zawiesić handler na rodzicu, który jest statyczny:
ListView = klasa zawierająca metody operacji na liście contentSearch = statyczny element, zawiera w sobie dynamiczną wyszukiwarkę zaczepiam event na select o klasie search (w tym selekcie wybieramy z listy po jakim polu chcemy wyszukiwać, metoda changeSearchFieldAction ładuje na tej podstawie dwa dodatkowe pola: "codnitions"[] czyli warunki(równe, różne, mniejsze, większe, zakres jeśli typ pola to date) i pole na wartość (lub dwa pola jeśli data, lub pole select jeśli enum) ) O co chodzi... Błąd jest w linji 1, a dokładniej ta fraza: 'select[class="search"]' jeżeli temu selectowi dodam jakąś klase, to to przestaje działać. (ps. widzicie tam w drugiej linji jest console.log, on zwraca "jQuery(select.search)" i tak powinno być) Jak byłoby idealnie:
ALE NIE! S jest obiektem, a jako drugi parametr musi być string bo inaczej console.log zwraca "jQuery(div.contentSearch)" a to mi do niczego nie potrzebne Moje pytanie: Jak ze zmiennej S wyciągnąć stringa który będzie nakierowywał dokładnie na to o co mi chodzi? Próbuje np. S.get(0).nodeName - ale to mi zwraca tylko string "SELECT" i w dodatku tylko pierwszego noda, niedopuszczalne... z tym, że to tylko jeden to bym sobie poradził jamimś eachem albo coś. Nie wiem, może jQuery trzyma coś takiego jak własny unikalny ID (nie #) każdego obiektu w dokumencie który dałoby się wyciągnąć np ListView.contentSearch.getUniqueId i przekazać jako drugi parametr do .on() tak żeby on wiedział o co chodzi? |
|
|
|
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%)
|
a jak zamienisz
Kod select[class="search"] na Kod select.search ważne że kropka jest przyklejona. |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 348 Pomógł: 26 Dołączył: 8.10.2008 Skąd: Lublin Ostrzeżenie: (0%)
|
Wiem o co chodzi i to nie działało, ale z ciekawości spróbowałem teraz, i poszło. Może różnica wersji ma w tym przypadku znaczenie. W każdym razie dzięki.
I tak zastanawia mnie, czy da się użyć .on() posiadając jedynie dynamiczny objekt jQuery(). Pewnie to kwestja zwinnego wyssania selektora. |
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 6 809 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%)
|
Jak rozumiem, oprócz klasy search nadawałeś selectowi również inną klasę.
Jeśli tak, to selektor: select[class="search"] nie miał prawa zadziałać, bo dotyczy sytuacji kiedy atrybut class zawiera dokładnie tą frazę. W przypadku kiedy select zawiera również inne klasy, to zadziała selektor: select[class~="search"] No, i oczywiście najprostsze rozwiązanie, które podał Phyton_000. Ten post edytował trueblue 28.05.2014, 09:16:41 |
|
|
|
![]() ![]() |
|
Aktualny czas: 23.12.2025 - 14:25 |