Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Dodawanie klasy do linków
Tajgeer
post
Post #1





Grupa: Zarejestrowani
Postów: 290
Pomógł: 48
Dołączył: 11.05.2008
Skąd: Kielce

Ostrzeżenie: (0%)
-----


Witam,
Dopiero raczkuje w temacie JavaScript. Próbowałem napisać skrypt, który po wykryciu, że link prowadzi do obrazka w formacie .jpg (czyli w atrybucie href zawiera .jpg), dodaje następnie do niego klasę (thickbox), ale nie działa on zbyt dobrze (a dokładniej wcale nie działa).

  1. <script type="text/javascript">
  2. var Link = getElementByTagName('a');
  3.  
  4. for(i=0;i<Link.length;i++)
  5. {
  6.  
  7. if(Link.hasAtrribute('href'))
  8. {
  9. var LinkHref = Link.getAttribute('href');
  10. }
  11.  
  12. if(preg_match('/.jpg/i', LinkHref))
  13. {
  14. Link.setAttribute('class', 'thickbox');
  15. }
  16.  
  17. }

Co jest źle?
Go to the top of the page
+Quote Post
viking
post
Post #2





Grupa: Zarejestrowani
Postów: 6 381
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


getElementsByTagName
Go to the top of the page
+Quote Post
Tajgeer
post
Post #3





Grupa: Zarejestrowani
Postów: 290
Pomógł: 48
Dołączył: 11.05.2008
Skąd: Kielce

Ostrzeżenie: (0%)
-----


Niestety nic to nie dało, dalej nie działa.
Go to the top of the page
+Quote Post
ziqzaq
post
Post #4





Grupa: Zarejestrowani
Postów: 428
Pomógł: 128
Dołączył: 17.06.2007

Ostrzeżenie: (0%)
-----


1. Masz literówki w kodzie (co najmniej dwie).
2. Mieszasz php z javascript (vide preg_match - no chyba, że napisałeś sobie taką funkcję).
3. Błędnie odnosisz się do linków które próbujesz pobrać.

Rady:
1. Firefox + Firebug.
2. Google + javascript + regex.
3. Zobacz sobie jak się używa document.getElementsByTagName, jest mnóstwo przykładów w google. Zwróć uwagę jak się odnosi do elemetów, które pobierasz za pomocą tej metody.
Go to the top of the page
+Quote Post
erix
post
Post #5





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
dodaje następnie do niego klasę (thickbox)

Skoro masz Thickboxa, to masz jQuery, czyli nie ma sensu babrać się czystym JS-em. Poza tym - takie dodawanie klas Ci nic nie da, bo metoda inicjująca wyzwalacze TB została WCZEŚNIEJ wykonana i teraz skrypt tego nie zauważy.

Zamiast dodawania klasy, podpinaj metodę tb_show do zdarzenia onclick.
Go to the top of the page
+Quote Post

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: 17.09.2025 - 11:29