Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript]Niewidoczny element dla jQuery
Forum PHP.pl > Forum > Przedszkole
LewyM1
Witam,
otóż mam mały problem z $(this). Mam sobie pewną stronę na której są tylko elementy dodane przez html(), cześć skryptu jest odpowiedzialna za to, aby dodane elementy przez html() po wskazaniu na nie myszką podświetlały się na żółto. Ta funkcja działa prawidłowo z elementami dodanymi przed uruchomieniem skryptu, ale jeśli dodam je funkcją html(), jQuery już ich nie zobaczy.
  1.  
  2. $(".div").html(divyy+"<p>"+Tablica[i]+"</p>\n<hr/>\n");
  3.  
  4. ...
  5. $("p").mouseover(function(){
  6. $(this).css("background-color", "yellow");
  7. });
  8. $("p").mouseout(function(){
  9. $(this).css("background-color", "white");
  10. });

Bardzo proszę o pomoc w rozwiązaniu mojego problemu.
Pozdrawiam
SmokAnalog
Powinno działać. Czy wywołujesz $(".div").html(...) w $(document).ready(...), innymi słowy ten fragment kodu jQuery "wie" już o elemencie .div?

P.S. <div class="div"> - trochę słabo... smile.gif
lukesh
  1. $("p").live("mouseenter",function(){
  2. $(this).css("background-color", "yellow");
  3. }).mouseout(function(){
  4. $(this).css("background-color", "white");
  5. });


- użyj live;
- skoro masz mouseout to dlaczego używasz mouseover? użyj mousenter;
- nie pisz zbędnego kodu - mam na myśli powtarzanie tego $("p");
sunpietro
@lukesh, jaki live? starych metod chcesz go uczyć? bezsens.
Należy to zrobić tak:
Kod
$("p").on("mouseenter",function(){
    $(this).css("background-color", "yellow");
}).on('mouseout',function(){
    $(this).css("background-color", "white");
});
drozdii07
Podepnę się jeśli można smile.gif Wie ktoś jak zrobić to samo tylko że z eventem drag/drop ?
SmokAnalog
Cytat(lukesh @ 11.07.2012, 06:14:48 ) *
skoro masz mouseout to dlaczego używasz mouseover? użyj mousenter;

Nieprawda, przeciwieństwem mouseout jest właśnie mouseover. Proszę nie wprowadzać autora tematu w błąd.
lukesh
Cytat(sunpietro @ 11.07.2012, 07:13:34 ) *
@lukesh, jaki live? starych metod chcesz go uczyć? bezsens.
Należy to zrobić tak:
Kod
$("p").on("mouseenter",function(){
    $(this).css("background-color", "yellow");
}).on('mouseout',function(){
    $(this).css("background-color", "white");
});


Takie coś nie będzie działać!

Jeżeli już stosować .on to w taki sposób:

  1. $(document).on('mouseenter', 'p', function(){
  2. $(this).css("background-color", "yellow");
  3. }).on('mouseout',function(){
  4. $(this).css("background-color", "white");
  5. });


Cytat(SmokAnalog @ 11.07.2012, 13:29:25 ) *
Nieprawda, przeciwieństwem mouseout jest właśnie mouseover. Proszę nie wprowadzać autora tematu w błąd.


Funkcja .mouseenter imituje to, co w css nazywa się hover.

Tutaj, na dole strony, przykład - porównanie .mouseenter i .mouseover:

http://api.jquery.com/mouseover/
SmokAnalog
Nie musisz mi tłumaczyć co to mouseover wink.gif przeciwieństwem mouseenter jest mouseleave, a mouseover - mouseout.
LewyM1
Witam,
funkcja on() robi swoje, ale przy zjeżdżaniu myszki (mouseout) z <p></p> element nie zmienia się z powrotem na biało.
Dzięki za szybką odpowiedź!
Pozdrawiam
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.