Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [jQuery] Kiedy $(this) odnosi sie do czego ?
Wolfie
post
Post #1





Grupa: Zarejestrowani
Postów: 686
Pomógł: 0
Dołączył: 10.11.2008
Skąd: Łódź

Ostrzeżenie: (20%)
X----


Witam,

Mam nastepujacące dwie funkcje jQuery:

[JAVASCRIPT] pobierz, plaintext
  1. $(document).ready(function() {
  2. $("#menu").find('a').live("click",function() {
  3. $('body').load("index.php", {'mailbox': $(this).attr('value'),
  4. 'controller' : 'mailbox',
  5. 'action' : 'mailbox'});
  6. });
  7. $(".message").find('label').live("click",function() {
  8. $('#messages').load("index.php", {'id' : $(this).find('input').val(),
  9. 'controller' : 'mailbox',
  10. 'action' : 'message',
  11. 'repeat' : 'yes'});
  12. });
  13. });
[JAVASCRIPT] pobierz, plaintext


No i nie rozumiem tutaj jednej rzeczy.
Jak widac konstrukcja tych funkcji jest praktycznie identyczna, tylko ze w pierwszej slowko $(this) odnosi sie do $('#menu).find('a') a w drugiej slowko this odnosi sie do $('#messages'), tak przynajmniej wynika z tego co wywnioskowalem w czasie prob, bledow i testowania.

Od razu zatrzymam sie na chwile przy drugiej funkcji, obsługuje ona taki kod (a raczej powinna obslugiwac bo nie dziala tak jak powinna - zaraz wytlumacze dlaczego) :

  1. <div id="messages">
  2. <div class="message">
  3. {section name="i" loop=$parts}
  4. <label>{$parts[i].from}</label>
  5. <label>{$parts[i].id}<input type="hidden" value="{$parts[i].id}"></label>
  6. {/section}
  7. </div>
  8. </div>


No wlasnie, druga funkcja powinna analogicznie do pierwszej zwracac mi value dla inputa, ale tego nie robi, wlasnie dlatego ze slowko $(this) - z tego co mi sie wydaje - odnosi sie tutaj nie do $(".message").find('label') - jakby wynikalo z analogii do pierwszej funkcji - lecz odnosi sie do $('#messages') i przez to nie moge wyciagnac atrybutu value.
Moze ktos mi wytlumaczyc ten fenomen ?
Dlaczego w pierwszej i drugiej funkcji - choc zbudowanie prawie identycznie - $(this) odnosi sie do roznych czesci ?

Ten post edytował Wolfie 13.10.2009, 17:28:46
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 21.09.2025 - 10:51