2013-07-27 9 views
11

Jestem początkujący w JSW & jQuery, więc proszę o mnie.Jak zaimplementować jScroll?

Próbuję utworzyć listę dynamiczną <ul> przy użyciu JS i na końcu jej działanie. Teraz muszę wdrożyć koncepcję nieskończonej przewijania na mojej liście, używając wtyczki jScroll.

Więc badałem dużo o jScroll, ale nie mogę znaleźć żadnego tutoriala, którego potrzebowałem. Większość samouczków używających języka PHP jest prawie taka sama, podczas gdy w moim przypadku zrobiłem mój kod serwera (PHP) przy użyciu prostego zapytania SELECT z LIMIT i OFFSET na nim i zwracając json.

To jest mój kod jQuery/AJAX, które tworzą listę dynamiczne z bazy danych, jej już działa:

$.ajax({ 
    url: "http://localhost/jwmws/index.php/jwm/search/msmall/"+keyword, //This is the current doc 
    type: "GET", 
    error : function(jq, st, err) { 
     alert(st + " : " + err); 
    }, 
    success: function(result){ 
     //generate search result 
     //float:left untuk hack design 
     $('#search').append('<p style="float:left;">Search for : ' + keyword + '</p>' 
      + '<br/>' 
      + '<p>Found ' + result.length + ' results</p>'); 

     if(result.length == 0) 
     { 
      //temp 
      alert("not found"); 
     } 
     else{ 
      for(var i = 0; i < result.length; i++) 
      { 
       //generate <li> 
       $('#list').append('<li class="box"><img class="picture" src="images/HotPromo/tagPhoto1.png"/><p class="name"><b>Name</b></p><p class="address">Address</p></li>'); 
      } 

      var i=0; 
      $(".box").each(function(){ 
       var name, address, picture = ""; 
       if(i < result.length) 
       { 
        name = result[i].name; 
        address = result[i].address; 
        picture = result[i].boxpicture; 
       } 

       $(this).find(".name").html(name); 
       $(this).find(".address").html(address); 
       $(this).find(".picture").attr("src", picture); 
       i++; 
      }); 
     } 
    } 
}); 

Ponieważ mój dynamiczna lista już działa, teraz po prostu trzeba wdrożyć jScroll. Jednak nie rozumiem jego kodu, jak:

$('.infinite-scroll').jscroll({ 
    loadingHtml: '<img src="loading.gif" alt="Loading" /> Loading...', 
    padding: 20, 
    nextSelector: 'a.jscroll-next:last', 
    contentSelector: 'li' 
}); 

Jak wdrożyć to w moim przypadku? Właśnie dodam <li> w moim jquery/AJAX, więc jak o nextSelector?

Każda pomoc jest doceniana, proszę po prostu zapytać, czy masz jakieś pytanie.

Dzięki za pomoc: D

+0

funkcja przywołanie w ajax sukcesu – Hushme

+0

@Hushme przepraszam, ale co masz na myśli przez przywołanie Dzięki: D –

+1

wywołanie $ ('nieskończone przewijanie.) Jscroll ({... znowu w funkcji sukcesu – Hushme

Odpowiedz

7

Ty Hava każdą rzecz prety wiele ustaw po prostu potrzebne, aby zadzwonić jscroll w odpowiednim czasie.

$.ajax({ 
     url: "http://localhost/jwmws/index.php/jwm/search/msmall/"+keyword, //This is the current doc 
     type: "GET", 
     error : function(jq, st, err) { 
      alert(st + " : " + err); 
     }, 
     success: function(result){ 
      //generate search result 
      //float:left untuk hack design 
      $('#search').append('<p style="float:left;">Search for : ' + keyword + '</p>' 
          + '<br/>' 
          + '<p>Found ' + result.length + ' results</p>'); 

      if(result.length == 0) 
      { 
       //temp 
       alert("not found"); 
      } 
      else{ 
       for(var i = 0; i < result.length; i++) 
       { 
        //generate <li> 
        $('#list').append('<li class="box"><img class="picture" src="images/HotPromo/tagPhoto1.png"/><p class="name"><b>Name</b></p><p class="address">Address</p></li>'); 
       } 
       //After generation of <li> put a next link 
       $('#list').append('<a href="#" class="jscroll-next">NEXT</a>'); 
       //call to jscroller to be triggered 
       jscroller(); 
       var i=0; 
       $(".box").each(function(){ 
        var name, address, picture = ""; 
        if(i < result.length) 
        { 
         name = result[i].name; 
         address = result[i].address; 
         picture = result[i].boxpicture; 
        } 

        $(this).find(".name").html(name); 
        $(this).find(".address").html(address); 
        $(this).find(".picture").attr("src", picture); 
        i++; 
       }); 
      } 
     } 
     }); 

//The function to be called when <li> are rendered. 
function jscroller(){ 
$('.infinite-scroll').jscroll({ 
    loadingHtml: '<img src="loading.gif" alt="Loading" /> Loading...', 
    padding: 20, 
    nextSelector: 'a.jscroll-next:last', 
    contentSelector: 'li' 
}); 
} 
+0

Witam, muszę załadować 50 wierszy za każdym razem, aż to się skończy. Tak, jak mogę dać kontrę do jscroll. –