![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 0 Dołączył: 6.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Na bank banał, więc z góry przepraszam. Próbuję odnaleźć sposób, żeby pobrać nazwę klasy klikniętego obiektu. Coś na styl: Kod $(this).click(function () { var nazwa_klasy = $(this).attr('class'); }); Oczywiście to nie działa, mimo że teoretycznie powinno. Czy da się to jakoś zrobić? |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 749 Pomógł: 37 Dołączył: 3.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
A działać powinno, próbowałeś dostawić alert(nazwa_klasy);
Wyświetla coś? -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 0 Dołączył: 6.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 749 Pomógł: 37 Dołączył: 3.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
Wierzę Ci na słowo, że nie działa, ale nie zechciałeś mi odpowiedzieć na pytanie które mogłoby pomóc w rozwiązaniu problemu.
-------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 0 Dołączył: 6.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
Oczywiście, że próbowałem. A czy Ty sprawdzałeś, czy u Ciebie działa? Jak u mnie nie działa, to i u Ciebie też nie powinno. Widać to wcale nie jest poprawne, mimo że na logikę tak powinno być. Za mało znam się na Jquery i JS, żeby stwierdzić, dlaczego ten kod jest niepoprawny.
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 749 Pomógł: 37 Dołączył: 3.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
Owszem, u mnie działa. Specjalnie przygotowałem:
http://kalinowski.prohost.pl/test/class/# Kod: index.html Kod <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="class.js"></script> </head> <body> <a href="#" class='asd'>asd</a> <br /><a href="#" class='qwe'>qwe</a> </body> </html> class.js Kod $(document).ready(function() { $('a').click(function(){ var aaa = $(this).attr('class'); alert(aaa); }); }); Edit... ale ale... zaraz zaraz... teraz zauważyłem... Co to jest $(this) w pierwszej linijce? Do jakiego niby elementu chcesz się odnieść? Ten post edytował 1010 21.04.2010, 21:27:53 -------------------- |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 0 Dołączył: 6.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
Edit... ale ale... zaraz zaraz... teraz zauważyłem... Co to jest $(this) w pierwszej linijce? Do jakiego niby elementu chcesz się odnieść? Te $(this) w pierwszej linijce to tylko przykład - zobrazowanie. W rzeczywistości u mnie będzie się to odnosić do $(document) - całości strony lub może jakiegoś większego elementu. Ten post edytował shimano 22.04.2010, 09:21:40 |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 749 Pomógł: 37 Dołączył: 3.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
Ok, tylko pamiętaj, że drugie $(this) jest ściśle powiązane z tym dla jakiego elementu ustawisz zdarzenie. Dlatego ustawienie tam $(document) chyba nie jest najlepszym pomysłem, bo czy cały dokument ma atrybut class?
Lepszy rozwiązaniem jest ustawienie tam $('a') - dla wszystkich linków, $('div') - dla wszystkich divów, $('img') - dla wszystkich img, ale to już zależy od zastosowania na którym Ci zależy -------------------- |
|
|
![]()
Post
#9
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Tylko UWAGA. Nie wyłapiesz zdarzenia na elementach, które wcześniej obsługujesz. Np
Nie wyłapiesz kliknięcia w elementy z klasą .main Dlatego zamiast return false spróbowałbym dać
Ten post edytował wookieb 22.04.2010, 11:22:05 -------------------- |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 0 Dołączył: 6.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki wookieb ;]
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 28.04.2025 - 07:43 |