Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript][jQuery] Problem z $.load() .. nie chce wysłac jako parametru atrybutu title :/, można to jakośobejść?
kukix
post
Post #1





Grupa: Zarejestrowani
Postów: 600
Pomógł: 2
Dołączył: 1.09.2002
Skąd: Wrocław

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


Witam.

Mam elementy DIV:
  1. <div class="moj_element" title="123"></div>
  2. <div class="moj_element" title="321"></div>


Kod js:

Kod
$(document).ready(function(){
    
  $('.moj_element').load('ajax.php', {zmienna: $(this).attr('title')  }, function() { alert( $(this).attr('title') ); }  );

});


Problem w tym, że funkcja alert() poprawnie wyświetla wartośc atrybutu title.. natomiast parametr 'zmienna' ma całkowicie inną wartość.. nie wiem dokładnie skąd jest nawet pobierana.. z jakiegos nadrzędnego elementu. Czy mogę się jakoś odwołać w tym miejscu do atrybutu title elmentu do którego ładuje zawartość?

Ten post edytował kukix 22.04.2012, 22:57:14
Go to the top of the page
+Quote Post
Sebusik
post
Post #2





Grupa: Zarejestrowani
Postów: 47
Pomógł: 1
Dołączył: 29.01.2011

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


Kod
$(document).ready(function(){
    
  $('.moj_element').load('ajax.php', {zmienna: $(this).attr('title')  }, function() { alert( $(this).attr('title') ); }  );

});

Zapomniałeś jednego apostrofu.
Go to the top of the page
+Quote Post
kukix
post
Post #3





Grupa: Zarejestrowani
Postów: 600
Pomógł: 2
Dołączył: 1.09.2002
Skąd: Wrocław

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


Cytat(Sebusik @ 22.04.2012, 23:50:09 ) *
Kod
$(document).ready(function(){
    
  $('.moj_element').load('ajax.php', {zmienna: $(this).attr('title')  }, function() { alert( $(this).attr('title') ); }  );

});

Zapomniałeś jednego apostrofu.



w kodzie, który mnam u siebie, jest ten apostrof.. źle mi się wkleiło. ale dalej jest tak samo... doszedłem do tego, że wartośc parametry 'zmienna' to tytuł strony.. czyli po prostu znacznik <TITLE>

Ten post edytował kukix 23.04.2012, 09:23:13
Go to the top of the page
+Quote Post
Sinevar
post
Post #4





Grupa: Zarejestrowani
Postów: 40
Pomógł: 13
Dołączył: 21.02.2008

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


Primo to ten Twój load() wciskałby wszystko, co zwróci skrypt ajax.php do dwóch kontenerów div.moj_element. Secundo, $(this), którego używasz przy przypisywaniu wartości do zmiennej zmienna, jest obiektem window. Ten drugi $(this), z funkcji zwrotnej jest już przypisany do elementów .moj_element, dlatego alert zwraca Ci poprawną wartość (tzn połowicznie, bo alertuje dwukrotnie, dla każdego z div'ow)

Nie lepiej byłoby zrobić to tak? (tzn w chwili kliknięcia na div, doczytujesz sobie wartość ze skryptu php i wstrzykujesz go do tego diva)

  1. $(document).ready(function(){
  2. $('.moj_element').click(function() {
  3. $(this).load('ajax.php', { zmienna: $(this).attr('title') }, function() { alert($(this).attr('title')); });
  4. });
  5. });
Go to the top of the page
+Quote Post
mortus
post
Post #5





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


Ja zaproponuje rozwiązanie, które nie wymusza na użytkowniku zdarzenia kliknięcia, a po prostu ładuje odpowiednią zawartość do każdego kontenera, po załadowaniu struktury HTML (chyba o to autorowi chodzi):
[JAVASCRIPT] pobierz, plaintext
  1. $(document).ready(function() {
  2. $('.moj_element').each(function() {
  3. var t = $(this).attr('title');
  4. $(this).load('ajax.php', { zmienna: t }, function() { alert(t); });
  5. });
  6. });
[JAVASCRIPT] pobierz, plaintext
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 Aktualny czas: 21.08.2025 - 00:41