Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript]Niewidoczny element dla jQuery
LewyM1
post 10.07.2012, 22:51:46
Post #1





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 22.02.2011
Skąd: Sierpc

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


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
SmokAnalog
post 10.07.2012, 23:36:44
Post #2





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


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
Go to the top of the page
+Quote Post
lukesh
post 11.07.2012, 05:14:48
Post #3





Grupa: Zarejestrowani
Postów: 113
Pomógł: 14
Dołączył: 25.08.2006

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


  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");

Ten post edytował lukesh 11.07.2012, 05:15:26


--------------------
Edumemo.pl - Nauka Języków Obcych
Go to the top of the page
+Quote Post
sunpietro
post 11.07.2012, 06:13:34
Post #4





Grupa: Zarejestrowani
Postów: 262
Pomógł: 26
Dołączył: 23.01.2009
Skąd: eZ Systems

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


@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");
});


--------------------
Go to the top of the page
+Quote Post
drozdii07
post 11.07.2012, 10:44:15
Post #5





Grupa: Zarejestrowani
Postów: 254
Pomógł: 39
Dołączył: 6.12.2010
Skąd: localhost

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


Podepnę się jeśli można smile.gif Wie ktoś jak zrobić to samo tylko że z eventem drag/drop ?


--------------------
Wspieram akcję "jQuery i AJAX to nie język programowania"
Go to the top of the page
+Quote Post
SmokAnalog
post 11.07.2012, 12:29:25
Post #6





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


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.
Go to the top of the page
+Quote Post
lukesh
post 11.07.2012, 14:31:44
Post #7





Grupa: Zarejestrowani
Postów: 113
Pomógł: 14
Dołączył: 25.08.2006

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


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/

Ten post edytował lukesh 11.07.2012, 14:36:20


--------------------
Edumemo.pl - Nauka Języków Obcych
Go to the top of the page
+Quote Post
SmokAnalog
post 11.07.2012, 16:38:04
Post #8





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


Nie musisz mi tłumaczyć co to mouseover wink.gif przeciwieństwem mouseenter jest mouseleave, a mouseover - mouseout.
Go to the top of the page
+Quote Post
LewyM1
post 11.07.2012, 17:16:54
Post #9





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 22.02.2011
Skąd: Sierpc

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


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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 21:34