jQuery i unbind()

0
                 $('a').mouseover(function(){
                 $('p').css('color', 'red');           
                 });
                
                 $('div').mouseover(function() {
                 $('p').css('color', 'black');   
                 });
                 $('a').mouseover(function(){
                 $('p').css('color', 'red');           
                 });
                
                 $('div').mouseover(function() {
                 $('a').unbind('mouseover');
                 });

Dlaczego dwa powyższe rozwiązania dają inne rezultaty?

0

Dlatego ponieważ w pierwszym dodajesz kolor do elementu div za pomocą styli css natomiast w drugim likwidujesz zdarzenie mouseover (czyli najechania kursorem na obiekt) dla elementu "div".

0

Wskazanie kursorem elementu A zamienia kolor P na czerwony, a wskazanie elementu DIV zamienia kolor P na czarny, a więc niejako niweluje efekt pierwszego, bo czarny jest domyślny.

To samo chciałem osiągnąć w drugim przykładzie, ale już bez "niejako", tylko wprost, właśnie przy pomocy unbind(). Problem w tym, że po wskazaniu DIV'a nic się nie dzieje, P nadal jest czerwony. Dlaczego?

0

bo odpięcie zdarzenia nie cofa skutków wywołanych przez to zdarzenie! absolutnie nie!

jak powiesz Zosi, żeby rysowała kreskę jak przejedzie samochód koło jej domu, a za godzinę każesz jej przestać, to nie sprawisz, że Zosia będzie miała pustą kartkę ;)

0

W takich sytuacjach lepiej skorzystaj z add class i remove class dla zdarzeń myszki.

1 użytkowników online, w tym zalogowanych: 0, gości: 1