![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 180 Pomógł: 6 Dołączył: 10.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
Mam problem aby dostać się do odpowiedniego elementu ( w drzewie DOM) za pomocą jQuery (aby przypisać mu zdarzenie onclick) W javascript bym sobie poradził ale chcę się nauczyć chociaż trochę jQuery.
i skrypt (a raczej to co wymyśliłem ale nie działa) Dzięki za wszystkie podpowiedzi i wyjaśnienia. P.S. Wiem że dziwnie (inaczej niż wzorzec jQuery) pisze funkcje jednak tak mi jest wygodniej. |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 183 Pomógł: 24 Dołączył: 4.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
nie "each'uje" po elemencie <tr> tylko po jego zawartości. hint
Ten post edytował kalmaceta 8.01.2011, 11:11:45 -------------------- kAlmAcetA
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 180 Pomógł: 6 Dołączył: 10.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
Po kilkunastu próbach i pewnym zdenerwowaniu na jQuery zrobiłem to co chciałem - czyli dostałem się do pierwszego "rzędu" <tr> </tr> (wiersza) i zmieniłem każdej komórce.
Poniżej przedstawiam kod dla innych a także dla sprawdzenia samego siebie - a dokładnie swojego rozumowania. Jeżeli źle rozumuje to proszę o komentarz. A więc moim problemem był to iż w drzewie DOM <tabeli> pierwszym nodem jest znacznik <tbody> (nawet jeżeli go nie umieszczamy w html'u). Przynajmniej tak zauważyłem w O, FF i GCh.
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 2 921 Pomógł: 269 Dołączył: 11.08.2005 Skąd: 127.0.0.1 ![]() |
Sądzę, że tak będzie bardziej czytelne
-------------------- I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features. |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 180 Pomógł: 6 Dołączył: 10.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
Masz racje ~batman. Tak wygląda o wiele ładniej (kurcze nie łapię ciągle tych tr:first td ect).
Jednakże w moim przypadku each() spełnia się o wiele bardziej. W poscie dałem tylko przykład. Dla zobrazowania. A each() jest dla mnie o wiele lepsze ponieważ ma (przynajmniej w jQery ver. 1.4 ) "index" i "element" (.each( function(index, Element) )) co jest dla mnie bardziej użyteczne. Ale jest "oczywistą oczywistością" że twój sposób zapisu jest ładniejszy |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 589 Pomógł: 91 Dołączył: 22.05.2008 Skąd: Gliwice Ostrzeżenie: (0%) ![]() ![]() |
Tylko musisz zważyć na to, że każda metoda zwraca obiekt jQuery. A więc:
będzie wolniejsze jeśli to opisać selektorami. Nie ma przeszkód żebyś napisał:
i właśnie w ten sposób powinieneś to zrobić. -------------------- Moja gra - scraby.io
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
Tylko musisz zważyć na to, że każda metoda zwraca obiekt jQuery. A więc: może inaczej
będzie wolniejsze jeśli to opisać selektorami. Nie ma przeszkód żebyś napisał:
i właśnie w ten sposób powinieneś to zrobić. ![]() ![]() ps. wiem - teraz wspomnę o IE - ale też o jQuery... jak mnie poproszono bym rozwiązał problem z IE [którego nie mam na laptopie to musiałem to zrobić na innym kompie] to okazało się, że choć wszystko napisane przez jQuery [nie licząc innych błędów po drodze dla IE] to nie ma tam także zdarzenia 'input' dla IE - to po co wogóle ono tam było jak to nie problem dopisać "piaskownicę" na zdarzenie... ja wiem o tym: Cytat In older, pre-HTML5 browsers, "keyup" is definitely what you're looking for. In HTML5 there is a new event, "input", which behaves exactly like you seem to think "change" should have behaved - in that it fires as soon as a key is pressed to enter information into a form. Kod $('element').bind('input',function); ale szukaj wiatru w polu jak nie ma się IE ^^ a i children też mi się posypało - a myślałem, że większość rzeczy przemyśleli - a nie zrobili kluczowej [nie wiem jak teraz] - nie przekazali dzieci do "normalnej" tablicy jak to nawet w większości podstawowych tutoriali js jest wspomniane gdy bardziej skomplikowane operacje an dzieciach chcemy zrobić... Ten post edytował zegarek84 11.01.2011, 00:40:38 -------------------- Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 589 Pomógł: 91 Dołączył: 22.05.2008 Skąd: Gliwice Ostrzeżenie: (0%) ![]() ![]() |
Niestety nie mam czasu na testy. Widzę, że swego czasu zagłębiałeś się w bebechy jQ, fajnie bo dowiedziałem się o Sizzle o którym nie maiłem zielonego pojęcia
![]() No ale chyba oba zaprezentowane wyżej przeze mnie sposoby działają na tych samych mechanizmach, przynajmniej wydaje mi się to naturalne, żeby tak było.
Robi sobie implode i wg kolejnych selektorów "wydłubuje" coraz to bardziej konkretny node.
Robi to samo tyle, że między kolejnym "wydłubaniem" tworzy (czy klonuje, nie ważne - po prostu jedna operacja więcej) oraz przekazuje obiekt jQuery. Może i mój post jest zbyteczny, bo jedynie piszę o tym jak WYDAJE mi się jak jest, aczkolwiek chciałem przedstawić swój tok rozumowania i w żaden sposób nie neguje tego co napisał @zegarek84. Musiałbym zrobić testy. Temat leci do moich zakładek "w wolnej chwili" ![]() -------------------- Moja gra - scraby.io
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 05:07 |