Grupa MagazynyInternetowe
Online: 991Dostęp do treści elementu zapewnia metoda html(). Wywołana bez parametru zwraca bieżącą treść elementu. Wywołana z parametrem ustala nową treść.
Jeśli metodę html() wywołamy na rzecz klikniętego akapitu, wówczas kliknięcie akapitu będzie powodowało zmianę treści elementu:
1. $(document).ready(function(){ 2. $('p').click(function(){ 3. $(this).html('one, two, ...'); 4. }); 5. }); 6. ---------------------------- 7. <p>Lorem</p>
Dostęp do klikniętego akapitu wewnątrz metody click umożliwia this - referencja do obiektu, który wygenerował zdarzenie.
Styl elementu zmienimy metodą css(), która pobiera dwa parametry: nazwę właściwości oraz wartość:
1. $(document).ready(function(){ 2. $('p').click(function(){ 3. $(this).css('color', 'yellow'); 4. }); 5. }); 6. ---------------------------- 7. <p>Lorem</p>
Wadą powyższego rozwiązania jest połączenie dwóch języków: CSS oraz JavaScript. Wygodniej będzie do zmiany formatu wykorzystać klasy CSS oraz metody addClass() i removeClass().
Każdy element wybrany selektorem możemy dynamicznie wzbogacić o klasę. Umożliwia to metoda addClass(). Poniższy przykład jest rozbity na trzy języki: CSS, JavaScript oraz HTML:
1. .inny { 2. color: yellow; 3. } ---------------------------- 4. $(document).ready(function(){ 5. $('p').click(function(){ 6. $(this).addClass('inny'); 7. }); 8. }); 9. ---------------------------- 10. <p>Lorem</p>
Aby usunąć klasy wywołujemy removeClass():
1. .inny { 2. color: yellow; 3. } ---------------------------- 4. $(document).ready(function(){ 5. $('p.inny').click(function(){ 6. $(this).removeClass('inny'); 7. }); 8. }); 9. ---------------------------- 10. <p>Lorem</p>
Biblioteka jQuery zapewnia dostęp do pełnego zestawu zdarzeń HTML. Na przykład obsługę zdarzeń onmouseover oraz onmouseout zdefiniujemy metodami mouseover() oraz mouseout():
1. .inny { 2. color: yellow; 3. } ---------------------------- 4. $(document).ready(function(){ 5. $('p').mouseover(function(){ 6. $(this).addClass('inny'); 7. }); 8. $('p').mouseout(function(){ 9. $(this).removeClass('inny'); 10. }); 11. }); 12. ---------------------------- 13. <p>Lorem</p>
zaś zdarzenie ondblclick metodą dblclick():
1. $(document).ready(function(){ 2. $('p').dblclick(function(){ 3. $(this).css('text-decoration', 'underline'); 4. }); 5. }); 6. ---------------------------- 7. <p>Lorem</p>
Duża część funkcji odpowiedzialnych za zdarzenia może być wywoływana na dwa sposoby. Pierwszym sposobem jest wywołanie z parametrem, którym jest funkcja:
1. $('p').click(function(){ 2. ... 3. });
Takie wywołanie definiuje funkcję obsługi zdarzenia. Drugi sposób wywołania to wywołanie bezparametrowe: $('p').click();. Powoduje ono uruchomienie zdarzenia (ang. trigger).
Powiązane publikacje
Komentarzy: 6
Mała sugestia dotycząca tego menu ajaxowego:
zamiast przygotowywać 4 pliki:
1. abba.html
2. fragment-abba.html
3. ac_dc.html
4. fragment-ac_dc.html
a podczas ładowania treści dołączać do adresu słowo fragment:
3. $('#content').load(
4. 'fragment-' + $(this).attr('href')
5. );
wystarczy mieć 2 strony(abba.html, ac_dc.html), w których żądana treść będzie w odpowiednim znaczniku (np. div z jakimś id, np. "tresc").
Wtedy w funkcji load można podać jaki znacznik ma być odczytany(nie trzeba ładować całej strony, można fragmenty):
3. $('#content').load(
4. $(this).attr('href')+" div#tresc"
5. );
Swietny tutorialik, po przeczytaniu od razu zabralem sie za pisanie kodu, lecz natknelem sie na dosc ciekawy problem i nie mam pojecia dlaczego to tak dziala, a wlasciwie nie dziala
mamy plik d.html
<html>
<head>
<title>Przykład 1-1</title>
<script type="text/javascript" src="./JQ.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('#111 .b').click(function(){
$('#111').load('z.html');
});
$('#222 .c').click(function(){
alert('cos tam');
});
});
</script>
</head>
<body>
<p id="111">
<a class="b">klasa b</a>
</p>
<p id="222">
<a class="c">klasa c</a>
</p>
</body>
</html>
oraz plik z.html
<p id="222"><a class="c">klasa c</a></p>
Dlaczego po wczytaniu z.html do <p id="1111"> , wpisany tag nie jest obslugiwany przez jQuery?
W pliku glownym jest identyczny tag jak z pliku z.html i jest on caly czas obslugiwany przez jQuery.
Nie wiedziałem jak się skontaktować, dlatego piszę tutaj... Panie Włodzimierzu, informuję że od kilku tygodni na gajdaw.pl nie działają css-y i obrazki... URL-e z kodu strony zwracają Access Forbidden + 404.
Serdecznie pozdrawiam i dziękuję za pańskie świetne artykuły.
Artykuły tego autora:
Strony dynamicznie wymieniające dane z serwerem od kilku lat zdobywają coraz większą popularność. Przyjrzyjmy się jak działają teraz i co będą potrafiły po wejściu HTML-a 5.
Polecamy:
Na skróty:
Magazyny Internetowe| Co za ile| Programy| Praca| Magazyn Internet| Internet Maker| Web Toster| ForumNasze serwisy: