Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [jQuery] Problem z .on()
Adi32
post
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:

  1. 1 ListView.contentSearch.on('change', 'select[class="search"]', function(event){
  2. 2 console.log( $(this) )
  3. 3 Search.changeSearchFieldAction($(this));
  4. 4 });


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:

  1.  
  2. var S = ListView.contentSearch.find('select.search');
  3.  
  4. ListView.contentSearch.on('change', S ,function(event){
  5. event.stopPropagation();
  6. console.log( $(this) )
  7. search.changeSearchFieldAction($(this));
  8. });


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?


Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 25.12.2025 - 01:35