Przygoda z JavaScript
Re: Przygoda z JavaScript
this odwołuje się w tym wypadku do obiektu, który wywołał zdarzenie onmouseover.
-
- Zaawansowany
- Posty: 223
- Dołączył(a): niedziela, 11 marca 2012, 03:08
- Lokalizacja: Poland
- Contact:
Re: Przygoda z JavaScript
1. To obiektem będzie znacznik <p> czy cała ta linia?
2. Przypisując do zdarzenia funkcję, tym samym tworzymy obiekt ? I wtedy odwoływać się do niego możemy za pomoć this? Tak to mam rozumieć, bo w PHP troszkę inaczej to wygląda.
2. Przypisując do zdarzenia funkcję, tym samym tworzymy obiekt ? I wtedy odwoływać się do niego możemy za pomoć this? Tak to mam rozumieć, bo w PHP troszkę inaczej to wygląda.
Zawsze walcz do końca i nigdy się nie poddawaj!
Re: Przygoda z JavaScript
1. Element p i to co się w nim znajduje, a właściwie po prostu obszar elementu p.
2. Ogólnie funkcje w javascript są w tym samym momencie obiektami, mi się też to mieszało na starcie. this z ang. to "ten", więc korzystając z this intuicyjnie odwołujesz się do "tego" obiektu co wywołało dane zdarzenie.
2. Ogólnie funkcje w javascript są w tym samym momencie obiektami, mi się też to mieszało na starcie. this z ang. to "ten", więc korzystając z this intuicyjnie odwołujesz się do "tego" obiektu co wywołało dane zdarzenie.
-
- Zaawansowany
- Posty: 223
- Dołączył(a): niedziela, 11 marca 2012, 03:08
- Lokalizacja: Poland
- Contact:
Re: Przygoda z JavaScript
Troszkę mi się to myliło. Czyli żeby odwoływac się do tego obiektu gdzie zostało wykonanie jakeiś zdarzenie lub przypisana została funkcja po prostu używamy this, a nie już p. Bo naprzemian używanie this a np. obiektu czyli p. to czasami różnie wychodzi, na thisie zawsze są dobre wyniki, a na p już nie. Tylko tego teraz nie rozumiem. O co mi chodzi:
Kod jest ok, ale teraz pod this podstawiwamy p. I czasami to działa dobrze w innych funkcjach a czasami nie. Niech to szlaaaag. 
Code: Zaznacz cały
p.onmouseover = function()
{
this.innerHTML = "Tekst2";
}

Zawsze walcz do końca i nigdy się nie poddawaj!
Re: Przygoda z JavaScript
No będzie działać tam gdzie p istnieje, a niekoniecznie musi istnieć, poza tym korzystaj z konstrukcji this ponieważ wtedy jesteś pewien, że odwołujesz się do obiektu, który wywołał zdarzenie. Zawartość zmiennej można zawsze zmienić.
-
- Zaawansowany
- Posty: 223
- Dołączył(a): niedziela, 11 marca 2012, 03:08
- Lokalizacja: Poland
- Contact:
Re: Przygoda z JavaScript
Co zrobić, aby w funkcji widział mi zmieną div[i+1]?
Męczę nie nad tym i nie mogę znaleźć rozwiązania. Chodzi o to, że po kliknięciu pewnego DIVa, chce zmienić kolejny div+1, czyli zaraz pod nim (nadać mu klasę). Kod jest ślepy i nie widzi wogóle zmiennej i. Widzę, że to działa jak funkcja, ale jak sprawić, żeby zobacyzł moją zmienną i w funkcji onclick?
Code: Zaznacz cały
var faq = document.getElementById('faq');
var div = faq.getElementsByTagName('div');
for(var i=0, max=div.length; i<max; i++)
{
if(div[i].className == 'question')
{
div[i].onclick = function()
{
div[i+1].className = 'info2'; <--------------------------------
}
}
}
Zawsze walcz do końca i nigdy się nie poddawaj!
Re: Przygoda z JavaScript
Nie widzi i, czy diva? Spróbuj usunąć "var" przed divem. Co wypisuje alert(div) przed pętlą for?
-
- Zaawansowany
- Posty: 223
- Dołączył(a): niedziela, 11 marca 2012, 03:08
- Lokalizacja: Poland
- Contact:
Re: Przygoda z JavaScript
Problem rozwiązany. Musiałem przekazać do funkcji te wartości aby poprawnie wyświetlalo.
Zawsze walcz do końca i nigdy się nie poddawaj!