JQuery

2016-03-19 8 views
0

ile eklenmeyen AJAX yanıtı Burada birisinin bana yardımcı olabileceğini umuyorum. JQuery veya javascript'i çok kullanmıyorum - daha çok bir php adamıyım. İçeriği gerçekten JQuery ile UL'ye eklemek haricinde işe yarayacak gibi görünen bazı kodlarım var. Firebug'da günlüğü izlersem, doğru verileri geri getirdiğini görüyorum, ancak veriler asla sayfaya dahil edilmiyor. Şanssız bir şekilde .html, .load ve .append'i denedim. Her zaman ilk HTML'yi .load'daki php komut dosyasından yükler, ancak veri her zaman aynı olsa bile .append veya .html'nin çalışıp çalışmadığını vurur veya atlar. İşte bende ne var: Ben beklediğim HTML görüyorumJQuery

$(document).ready(function(){ 
     var page = 1; 

     $('#favoritesul').load("/custom/getfavorites.php"); //initial load 

     //load more on click 
     $('#favoritesul').on("click", "a.paginated", function (e) { 
      e.preventDefault(); 
      ++page; //increment page counter 
      //temporarily hide the load icon 
      $('#favoritesul > a.paginated').remove(); 
      //send AJAX 
      $.ajax({ 
       type: 'POST', 
       dataType: 'html', 
       url: '/custom/getfavorites.php', 
       data: { page: page} 
      }) 
      .done(function(data) { 
       $('#favoritesul').append(data); 
       $('#favoritesul').append('<a href="#" class="paginated"><i class="icon-undo"></i>LOAD MORE</a></ul>'); 
      }) 
      .fail(function(){ 
       alert('post failed'); 
      }); 
     }); 
    }); 

Dediğim gibi ben console.log ve AJAX yanıt bakarsak, sadece yerini bile eklemek veya olmaz, HTML'nin içeriği. Anlaşılır olması için, HTML içeriği Böyle göz eklemek çalışıyorum:

<li class='data-item'><div class='test'><div class='padding'><div class='image-container'><a href='pagelink.php'><img class='image' src='imagesource.jpg' /></a></div><div class='header'><h2 class='heading'><a href='pagelink.php'>Video</a></h2></div></div></div></li> 

Ve mevcut sayfanın ilgili kısmı bu önceki ilk .Load için olay gibi görünür:

<div class='clear'></div><ul id='favoritesul' class='someclasses'></ul> 

Tüm yardımlar için şimdiden teşekkürler!

cevap

0

done() işleyicinizde geçersiz HTML'niz var. İlk olarak bir #favoritesul bir UL, buna bir çapa ekleyemezsiniz, sadece bir LI, ve ikinci olarak, kısmi öğeleri ekleyemezsiniz, tıpkı kapanış </ul> etiketini dahil ederek yapmaya çalıştığınız gibi.

deneyin ekleme geçerli HTML

Ben bir div ul sarma ve div> ül yerine düz UL veri eklenmesi oldu yapıyor sona ne
.done(function(data) { 
    var li = $('<li />'); 

    li.append(data); 
    li.append('<a href="#" class="paginated"><i class="icon-undo"></i>LOAD MORE</a>'); 


    $('#favoritesul').append(li); 
}) 
+0

. Bu düzeltildi. Doğru yolda olsa da emintin. Teşekkürler! – CluelessJSMan