Po przewijaniu w dół szukam sposobu dodania kolejnych list do dolnej części listy. Na przykład na początku mam 20 zwrotów. Zamierzałem użyć paginacji i po prostu wróciłem tyle, ile wróciło z mojego zapytania, ALE wolałbym wrócić 15-20, a następnie na końcu przewijania automatycznie dodawać więcej do tej listy lub mieć przycisk "zobacz więcej" . Jestem nowy w jQuery Mobile i zastanawiam się, czy ktoś widział takie rzeczy zaimplementowane. Jest to również używane w Phonegap. Jeśli tak, to możesz wskazać mi właściwy kierunek? Wielkie dzięki z góry!Szukasz sposobu na dynamiczne dodawanie kolejnych list do dolnej części listy jQuery Mobile Listview
Szukasz sposobu na dynamiczne dodawanie kolejnych list do dolnej części listy jQuery Mobile Listview
Odpowiedz
Zamiast automatycznie ładować więcej elementów listy, sugeruję umieszczenie przycisku, który użytkownicy mogą dotknąć, aby załadować więcej (ale to tylko moja sugestia).
//setup an interval so we can throttle the `scroll` event handler since there will be tons of `scroll` events fired
var timer = setInterval(function() {
scrollOK = true;
}, 100),//run this every tenth of a second
scrollOK = true;//setup flag to check if it's OK to run the event handler
$(window).bind('scroll', function() {
//check if it's OK to run code
if (scrollOK) {
//set flag so the interval has to reset it to run this event handler again
scrollOK = false;
//check if the user has scrolled within 100px of the bottom of the page
if ($(this).scrollTop() + $(this).height() >= ($(document).height() - 100)) {
//now load more list-items because the user is within 100px of the bottom of the page
}
}
});
Oto demo: http://jsfiddle.net/knuTW/
Aktualizacja
To trochę łatwiej po prostu załadować przycisk, który użytkownik może kranu, wtedy gdy jest na podsłuchu, obciążenie więcej wierszy, a następnie ponownie Dołącz przycisk load-more
na końcu listy:
var $loadMore = $('ul').children('.load-more');
$loadMore.bind('click', function() {
var out = [];
for (var i = 0; i < 10; i++) {
out.push('<li>' + (count++) + '</li>');
}
$('ul').append(out.join('')).append($loadMore).listview('refresh');
});
Oto demo: http://jsfiddle.net/knuTW/2/
Jest przykładem może pomóc:
http://jsfiddle.net/dhavaln/nVLZA/
// load test data initially
for (i=0; i < 20; i++) {
$("#list").append($("<li><a href=\"index.html\"><h3>" + i + "</h3><p>z</p></a></li>"));
}
$("#list").listview('refresh');
// load new data when reached at bottom
$('#footer').waypoint(function(a, b) {
$("#list").append($("<li><a href=\"index.html\"><h3>" + i+++"</h3><p>z</p></a></li>"));
$("#list").listview('refresh');
$('#footer').waypoint({
offset: '100%'
});
}, {
offset: '100%'
});
Tak, właśnie tego szukałem ... co masz w tym przykładzie. Dam ci znać, jak to działa :) – tjoenz
Czy mógłbyś rozwinąć kod w swoim skrzypcach? Być może link do strony z wtyczką? – Jasper
waypoint to naprawdę prosta wtyczka, która uruchamia zdarzenie za każdym razem, gdy dojdziesz (przewiń w dół) do elementu selektora. sprawdź http://imakewebthings.com/jquery-waypoints/ i https: // github.com/imakewebthings/jquery-waypoints dla więcej szczegółów – dhaval
Istnieje kilka artykułów opisujących metody „zawsze przewijać” i „nieskończonego przewijania”, czyli to, co brzmi jak pytasz o .
Ideą jest załadowanie asynchronicznie większej ilości danych, gdy użytkownik przewinie w dół do z góry określonej liczby elementów.
Istnieje znany problem z tą metodą, ponieważ powoduje, że kłamca wychodzi z paska przewijania.
http://www.infinite-scroll.com/infinite-scroll-jquery-plugin/
http://masonry.desandro.com/demos/infinite-scroll.html
http://designbeep.com/2011/08/12/12-jquery-infinite-scrollingscroll-read-plugins-for-content-navigation/ http://www.jquery4u.com/tutorials/jquery-infinite-scrolling-demos/
Ahh, dzięki @jefferyhamby. Przeczytam te linki. Myślę, że byłoby to bardzo miłe, ale mogę, jak już wspomniałem, po prostu kliknąć przycisk "zobacz więcej" na dole listy. – tjoenz
- 1. Dynamiczne dodawanie zestawu zwijanego i listy zagnieżdżonej w aplikacji jQuery mobile
- 2. Dodawanie zdarzenia jquery mobile machnięcia
- 3. Szukasz prostego sposobu na przekonwertowanie listy ciągów do prawidłowej listy <long> w C#
- 4. Strzałka w dolnej części okna dialogowego jQuery
- 5. Szukasz uniwersalnego sposobu analizy ceny na dziesiętną
- 6. Scala: Szukasz ładnego sposobu podziału tablicy
- 7. jQuery Mobile .listview ("odśwież") nie działa
- 8. Stick div do dolnej części okna przeglądarki
- 9. jQuery Przewiń do dolnej części Div nawet po aktualizacji?
- 10. onClick przejdź do dolnej części strony, używając jQuery .animate
- 11. Dynamiczne dodawanie elementów do listy <T> poprzez refleksję
- 12. Dodawanie kolejnych plików js łamie jQuery IntelliSense
- 13. DIV dołączony do dolnej części rzutni
- 14. Trzymaj się dolnej części StackPanel
- 15. Automatyczne przewijanie do dolnej części obszaru tekstowego
- 16. Dynamiczna zmiana ikony w jQuery Mobile listview
- 17. Jak usunąć elementy z widoku listy JQUERY mobile
- 18. Włącz element listy do klikalnego obszaru w jQuery Mobile
- 19. Zastosuj kolejność listy do kolejnych listach
- 20. Dynamiczne dodawanie zdarzenia onClick za pomocą jQuery
- 21. Lista rozwijana jQuery Mobile Independent
- 22. sposób wyrównania zestawu przycisków do dolnej części ekranu w Androidzie
- 23. Automatyczne odświeżanie widoku listy przy zmianie - knockoutjs i JQuery Mobile
- 24. Metoda Groovy do listy list
- 25. sql dodawanie kolejnych wierszy do każdego wiersza
- 26. Dynamiczne dodawanie JTable do JScrollPane
- 27. Dodawanie kolejnych pól do kont użytkowników Meteor
- 28. Dodawanie zdarzeń do dynamicznie tworzonego pola wyboru w jquery mobile
- 29. Jak wyczyścić filtr wyszukiwania listy JQuery Mobile?
- 30. Dynamiczne dodawanie hiperłączy do RichTextBox
Dzięki tak dużo Jasper! Dam temu wir. Myślałem, że będę musiał dodać przycisk i nadal mogę. – tjoenz
@urbanrunic Do odpowiedzi dodałem ** aktualizację **, aby pokazać, jak łatwo można to zrobić za pomocą przycisku, a nie automatycznie. – Jasper
Dziękuję Jasper! Mam problemy z nieskończonym przewijaniem, które nie chce działać. Być może jest to projekt wielostronicowy, z którym muszę pracować. Ale postaram się to za pomocą przycisku :) – tjoenz