Oldal: 1 / 1

Each - get - miért nem működik?

Elküldve: 2016.09.30. 09:27
Szerző: lmartin
Üdvözletem! Nem értem, hogy miért nem működik az alábbi jQuery.
Amíg 1 "data-url"-t tartalmazó elem volt az oldalon, működött. Most, hogy kettő ilyen is van, csak a másodikon megy, és nem a megfelelő adat jelenik meg. Miért?

Kód: Egész kijelölése

   $('[data-url]').each(function() {
      obj = $(this);
      if(obj.data("url")!="") {
         $.get(obj.data("url"),function(data) {
            obj.data("title", data);
         });
      }
   });

Re: Each - get - miért nem működik?

Elküldve: 2016.09.30. 12:31
Szerző: gBaSoft
A $.get értékére várni kell, mert idő, mire egy url betöltődik. Viszont az each addig sem áll meg!
Mire az url tartalmát fel lehetne dolgozni, az obj már egészen másik objektumra mutat, mint amikor az url lekérdezés indult.
Elképzelhető, hogy a dokumentum utolsó eleme kapja csak meg az első elemnél elindított url lekérés eredményét.

Egy külön függvényhívással megoldható a probléma.

Kód: Egész kijelölése

function myGet(obj)
{
   $.get(obj.data('url'),function(data)
   {
      obj.data('title', data);
   });
}

$('[data-url]').each(function()
{
   myGet($(this));
});