Thread View: pl.comp.lang.javascript
12 messages
12 total messages
Started by sawic
Wed, 12 May 2010 15:01
[jQuery] Pomoc przy doborze odpowiedniego selektora.
Author: sawic
Date: Wed, 12 May 2010 15:01
Date: Wed, 12 May 2010 15:01
28 lines
1860 bytes
1860 bytes
Witam,
Zaimplementowałem sobie tooltip-a na stronę, który z każdego "title"
robi dymek. Wszystko działa jak należy jeżeli chodzi o pokazywanie
dymków, ale problem pojawia się jak chcę użyć atrybutu "title" do
jeszcze jakichś zdarzeń JS. Niestety w paru miejscach sprawdzam coś tam
po tytule i po zaimplementowaniu tooltip-a przestało to działać.
Na chwilę obecną tooltip-a uruchamiam po prostu czymś takim:
$("[title]").tooltip();
Elementy, które chciałbym aby nie były obsługiwane przez tooltip-a
otoczone są elementem <span class="klasa" />. Struktura strony
przedstawia się mniej więcej tak:
<span class="klasa">
<a href="#" title="tytul">link</a>
</span>
Chciałem wywołać tooltip-a z pominięciem wszystkich elementów
znajdujących się w <span class="klasa" /> próbując czegoś takiego:
$(":not('.klasa') [title]").tooltip();
Niestety to nie działa.
Czy mógłby ktoś bieglejszy w tych selektorach zaproponować mi jakieś
rozwiązanie tego problemu? Będę wdzięczny za wszelkie porady.
Pozdrawiam
Re: [jQuery] Pomoc przy doborze odpowiedniego selektora.
Author: Paweł Piskorz
Date: Wed, 12 May 2010 16:07
Date: Wed, 12 May 2010 16:07
15 lines
1389 bytes
1389 bytes
On 2010-05-12 17:01, sawic wrote:
> Chciałem wywołać tooltip-a z pominięciem wszystkich elementów
> znajdujących się w <span class="klasa" /> próbując czegoś takiego:
> $(":not('.klasa') [title]").tooltip();
> Niestety to nie działa.
http://www.w3.org/TR/css3-selectors/#negation
http://api.jquery.com/not-selector/
Gdzie tam widzisz '' w :not()? :)
--
message[autor="PablO"]::after {
content:"Pozdrawiam";
}
Re: [jQuery] Pomoc przy doborze odpowiedniego selektora.
Author: sawic
Date: Wed, 12 May 2010 19:49
Date: Wed, 12 May 2010 19:49
26 lines
1854 bytes
1854 bytes
W dniu 2010-05-12 18:07, Paweł Piskorz pisze:
> http://www.w3.org/TR/css3-selectors/#negation
> http://api.jquery.com/not-selector/
> Gdzie tam widzisz '' w :not()? :)
>
>
Zasugerowałem się dokumentacją.
Selektor klasy wygląda tak: jQuery('.class')
http://api.jquery.com/class-selector/
Selektora :not() używa się tak: jQuery(':not(selector)')
http://api.jquery.com/not-selector/
Łącząc powyższe przykłady, wyszło mi: jQuery(':not(".class")').
Oczywiście przykład bez '' także próbowałem, jednak bez skutku. Obydwa
nie działają.
Dokumentację studiowałem, ale chyba nic więcej nie wymyślę.
Czy mógłby mi ktoś rzucić przykładem, jak powinien wyglądać selektor
wyłapujący wszystkie elementy posiadające atrybut "title" oprócz tych
znajdujących się wewnątrz elementów posiadających klasę "klasa".
Mój pomysł to: $(":not('.klasa') [title]"). Niestety jest błędny.
Pozdrawiam
Re: [jQuery] Pomoc przy doborze odpowiedniego selektora.
Author: Paweł Piskorz
Date: Wed, 12 May 2010 21:08
Date: Wed, 12 May 2010 21:08
13 lines
1367 bytes
1367 bytes
On 2010-05-12 21:49, sawic wrote:
> Zasugerowałem się dokumentacją.
> Selektor klasy wygląda tak: jQuery('.class')
Nie nie, selektor klasy wygląda tak: .class -> :not(.class) ->
:not(.klasa) [title] -> i to przekazujesz jako parametr do jQuery:
$( ':not(.klasa) [title]' );
--
message[autor="PablO"]::after {
content:"Pozdrawiam";
}
Re: [jQuery] Pomoc przy doborze odpowiedniego selektora.
Author: Peter May
Date: Thu, 13 May 2010 01:13
Date: Thu, 13 May 2010 01:13
27 lines
1879 bytes
1879 bytes
W dniu 2010-05-12 17:01, sawic pisze:
> Witam,
>
> Zaimplementowałem sobie tooltip-a na stronę, który z każdego "title"
> robi dymek. Wszystko działa jak należy jeżeli chodzi o pokazywanie
> dymków, ale problem pojawia się jak chcę użyć atrybutu "title" do
> jeszcze jakichś zdarzeń JS. Niestety w paru miejscach sprawdzam coś tam
> po tytule i po zaimplementowaniu tooltip-a przestało to działać.
>
> Na chwilę obecną tooltip-a uruchamiam po prostu czymś takim:
> $("[title]").tooltip();
>
> Elementy, które chciałbym aby nie były obsługiwane przez tooltip-a
> otoczone są elementem <span class="klasa" />. Struktura strony
> przedstawia się mniej więcej tak:
>
> <span class="klasa">
> <a href="#" title="tytul">link</a>
> </span>
A po co tak? Dodaj klasę np. "notitle" do tag-u <a> i wybieraj tylko te
elementy, które mają atrybut title i nie mają klasy "notitle". Np.
$("*[title]:not(.notitle)").tooltip();
--
Peter
Re: [jQuery] Pomoc przy doborze odpowiedniego selektora.
Author: sawic
Date: Thu, 13 May 2010 06:36
Date: Thu, 13 May 2010 06:36
9 lines
1244 bytes
1244 bytes
W dniu 2010-05-12 23:08, Paweł Piskorz pisze: > Nie nie, selektor klasy wygląda tak: .class -> :not(.class) -> > :not(.klasa) [title] -> i to przekazujesz jako parametr do jQuery: > $( ':not(.klasa) [title]' ); To także próbowałem i także nie działało. Pozdrawiam
Re: [jQuery] Pomoc przy doborze odpowiedniego selektora.
Author: sawic
Date: Thu, 13 May 2010 06:40
Date: Thu, 13 May 2010 06:40
22 lines
1721 bytes
1721 bytes
W dniu 2010-05-13 03:13, Peter May pisze:
> A po co tak? Dodaj klasę np. "notitle" do tag-u <a> i wybieraj tylko te
> elementy, które mają atrybut title i nie mają klasy "notitle". Np.
>
> $("*[title]:not(.notitle)").tooltip();
>
Wiem, że mógłbym tak zrobić, ale nie chciałbym robić zmian w dokumencie
HTML. Musiałbym to zrobić w wielu miejscach, tak to jest niefortunnie
napisane. Jeżeli nic nie wymyślę, to planuję zrobić tak jak
zaproponowałeś, ale jest to ostateczność.
Prościej mi wybrać za pomocą jQuery elementy posiadające atrybut
"title", ale nie znajdujące się wewnątrz elementu posiadającego klasę
"klasa".
Problem dalej nierozwiązany.
Rozwiązanie zaproponowane przez Pawła Piskorza, które sprawdziłem jako
pierwsze, także nie działa.
Pozdrawiam
Re: [jQuery] Pomoc przy doborze odpowiedniego selektora.
Author: Peter May
Date: Thu, 13 May 2010 08:46
Date: Thu, 13 May 2010 08:46
31 lines
2073 bytes
2073 bytes
W dniu 2010-05-13 08:40, sawic pisze:
> W dniu 2010-05-13 03:13, Peter May pisze:
>> A po co tak? Dodaj klasę np. "notitle" do tag-u <a> i wybieraj tylko te
>> elementy, które mają atrybut title i nie mają klasy "notitle". Np.
>>
>> $("*[title]:not(.notitle)").tooltip();
>>
>
> Wiem, że mógłbym tak zrobić, ale nie chciałbym robić zmian w dokumencie
> HTML. Musiałbym to zrobić w wielu miejscach, tak to jest niefortunnie
> napisane. Jeżeli nic nie wymyślę, to planuję zrobić tak jak
> zaproponowałeś, ale jest to ostateczność.
Szybciej dokonasz zmian w dokumencie, niż znajdziesz rozwiązanie. Z
resztą sam sobie utrudniasz pakując element w <span>-a. Zupełnie
niepotrzebnie.
> Prościej mi wybrać za pomocą jQuery elementy posiadające atrybut
> "title", ale nie znajdujące się wewnątrz elementu posiadającego klasę
> "klasa".
Nie, prostsze jest to, co ja podałem.
> Problem dalej nierozwiązany.
> Rozwiązanie zaproponowane przez Pawła Piskorza, które sprawdziłem jako
> pierwsze, także nie działa.
Sprawdź FireBug-em czy nie masz błędów.
--
Peter
Re: [jQuery] Pomoc przy doborze odpowiedniego selektora.
Author: sawic
Date: Thu, 13 May 2010 09:02
Date: Thu, 13 May 2010 09:02
26 lines
1884 bytes
1884 bytes
W dniu 2010-05-13 10:46, Peter May pisze: > Szybciej dokonasz zmian w dokumencie, niż znajdziesz rozwiązanie. Z > resztą sam sobie utrudniasz pakując element w <span>-a. Zupełnie > niepotrzebnie. > Przedstawiona struktura dokumentu była oczywiście przykładowa i uproszczona. Zapakowanie elementów w <span /> jest konieczne. > Nie, prostsze jest to, co ja podałem. > Nie, prościej mi znaleźć rozwiązanie o którym pisałem. Nie jest prosto dokonać zmian w xx plikach html. Zwłaszcza, że to nie wszystko mój kod. > Sprawdź FireBug-em czy nie masz błędów. > No właśnie jakoś nie umiem obsługiwać firebug-a. Nie rozumiem tych czujek itd. Używam Web Developer-a i javascriptowej konsoli. Błędów nie ma. Po prostu taki selektor: $( ':not(.klasa) [title]' ); "łapie" wszystkie elementy z atrybutem "title", nawet te wewnątrz elementów o klasie "klasa". Pozdrawiam
Re: [jQuery] Pomoc przy doborze odpowiedniego selektora.
Author: Paweł Piskorz
Date: Thu, 13 May 2010 11:30
Date: Thu, 13 May 2010 11:30
37 lines
2389 bytes
2389 bytes
On 2010-05-13 08:36, sawic wrote:
> W dniu 2010-05-12 23:08, Paweł Piskorz pisze:
>> Nie nie, selektor klasy wygląda tak: .class -> :not(.class) ->
>> :not(.klasa) [title] -> i to przekazujesz jako parametr do jQuery:
>> $( ':not(.klasa) [title]' );
>
>
> To także próbowałem i także nie działało.
Ech przepraszam Cię bardzo, ale z tym selektorem dałem d..y na całej linii.
:not(.klasa) [title] łapie każdy element z title, którego przodkiem jest
element bez klasy "klasa", czyli praktycznie wszystkie elementy z title,
ponieważ przodkiem każdego z nich jest np. body czy html, a te nie mają
klasy "klasa".
Musimy skorzystać z selektora potomka, czyli:
:not(.klasa) > [title] (zakładając, że *rodzicem* linku którego *nie
chcesz* złapać jest element z klasą "klasa")
A najlepiej jeszcze doprecyzujmy:
span:not(.klasa) > a[title]
To złapie wszystkie linki z atrybutem title, poza takimi:
<span class="klasa">
<a href="#" title="tytul">link</a>
</span>
Uważaj, złapie nawet to:
<span class="klasa">
<span>
<a href="#" title="tytul">link</a>
</span>
</span>
Jeżeli dopuszczasz konstrukcję jak wyżej, wówczas najlepiej łap
wszystkie elementy z title a następnie filtruj je w jQuery.
--
message[autor="PablO"]::after {
content:"Pozdrawiam";
}
Re: [jQuery] Pomoc przy doborze odpowiedniego selektora.
Author: Paweł Piskorz
Date: Thu, 13 May 2010 11:34
Date: Thu, 13 May 2010 11:34
37 lines
2389 bytes
2389 bytes
On 2010-05-13 08:36, sawic wrote:
> W dniu 2010-05-12 23:08, Paweł Piskorz pisze:
>> Nie nie, selektor klasy wygląda tak: .class -> :not(.class) ->
>> :not(.klasa) [title] -> i to przekazujesz jako parametr do jQuery:
>> $( ':not(.klasa) [title]' );
>
>
> To także próbowałem i także nie działało.
Ech przepraszam Cię bardzo, ale z tym selektorem dałem d..y na całej linii.
:not(.klasa) [title] łapie każdy element z title, którego przodkiem jest
element bez klasy "klasa", czyli praktycznie wszystkie elementy z title,
ponieważ przodkiem każdego z nich jest np. body czy html, a te nie mają
klasy "klasa".
Musimy skorzystać z selektora potomka, czyli:
:not(.klasa) > [title] (zakładając, że *rodzicem* linku którego *nie
chcesz* złapać jest element z klasą "klasa")
A najlepiej jeszcze doprecyzujmy:
:not(span.klasa) > a[title]
To złapie wszystkie linki z atrybutem title, poza takimi:
<span class="klasa">
<a href="#" title="tytul">link</a>
</span>
Uważaj, złapie nawet to:
<span class="klasa">
<span>
<a href="#" title="tytul">link</a>
</span>
</span>
Jeżeli dopuszczasz konstrukcję jak wyżej, wówczas najlepiej łap
wszystkie elementy z title a następnie filtruj je w jQuery.
--
message[autor="PablO"]::after {
content:"Pozdrawiam";
}
Re: [jQuery] Pomoc przy doborze odpowiedniego selektora.
Author: sawic
Date: Thu, 13 May 2010 18:48
Date: Thu, 13 May 2010 18:48
29 lines
2124 bytes
2124 bytes
W dniu 2010-05-13 13:34, Paweł Piskorz pisze: > Ech przepraszam Cię bardzo, ale z tym selektorem dałem d..y na całej linii. > :not(.klasa) [title] łapie każdy element z title, którego przodkiem jest > element bez klasy "klasa", czyli praktycznie wszystkie elementy z title, > ponieważ przodkiem każdego z nich jest np. body czy html, a te nie mają > klasy "klasa". > Musimy skorzystać z selektora potomka, czyli: > :not(.klasa) > [title] (zakładając, że *rodzicem* linku którego *nie > chcesz* złapać jest element z klasą "klasa") > A najlepiej jeszcze doprecyzujmy: > :not(span.klasa) > a[title] > To złapie wszystkie linki z atrybutem title, poza takimi: > <span class="klasa"> > <a href="#" title="tytul">link</a> > </span> > Uważaj, złapie nawet to: > <span class="klasa"> > <span> > <a href="#" title="tytul">link</a> > </span> > </span> > Jeżeli dopuszczasz konstrukcję jak wyżej, wówczas najlepiej łap > wszystkie elementy z title a następnie filtruj je w jQuery. > Dzięki za odpowiedź. Teraz rozumiem w czym był problem. Pozdrawiam
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads