7

아래로 스크롤 한 후 목록보기의 맨 아래에 목록을 추가 할 방법을 찾고 있습니다. 예를 들어, 처음에는 20 개의 항목이 반환됩니다. 페이지 매김을 사용하고 내 쿼리에서 돌아 오는만큼 많은 것을 반환 하겠지만 스크롤을 끝내면 자동으로이 목록에 더 추가하거나 "더보기"라고 말하는 버튼이 있습니다. . 나는 jQuery Mobile에 익숙하지 않으며 누군가 이런 종류의 구현을 본 적이 있는지 궁금해한다. 이것은 Phonegap에서도 사용되고 있습니다. 그렇다면 올바른 방향으로 나를 가리킬 수 있습니까? 미리 감사드립니다!동적으로 jQuery Mobile 목록에 추가 목록을 추가하는 방법을 찾으십시오.

답변

18

더 많은 목록 항목을 자동으로로드하는 대신 사용자가 더 많이로드 할 수있는 버튼을 배치하는 것이 좋습니다 (단, 그건 제 제안 사항입니다). http://jsfiddle.net/knuTW/

업데이트

그것은 단지 사용자가 다음,이 탭의 당시 때, 탭 용지를 더 행과 수있는 버튼로드 조금 쉽게 재 - APPEND : 여기

//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 
     } 
    } 
}); 

는 데모입니다 목록의 마지막 load-more 버튼 : http://jsfiddle.net/knuTW/2/

: 여기

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'); 
});​ 

는 데모 인

+0

정말 고마워요 재스퍼! 나는이 소용돌이를 줄 것이다. 나는 단추를 추가해야하고 여전히 그래야한다고 생각하고 있었다. – tjoenz

+0

@urbanrunic 필자는 자동 응답 대신 버튼을 사용하여 얼마나 쉬운지를 보여주기 위해 답안에 ** 업데이트 **를 추가했습니다. – Jasper

+0

재스퍼 감사합니다! 나는 무한한 두루마리가 일하기를 원하지 않는데 문제가 있습니다. 내가 함께 사용해야하는 다중 디자인 일 수도 있습니다. 하지만 버튼으로 시도해 보겠습니다. – tjoenz

3

이 예를 밖으로 도움이 될 수 있습니다 :

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%' 
});​ 
+0

네, 그게 제가 찾고 있던 것입니다 ... 당신이 그 예에서 무엇을 가지고 있는지. 어떻게 작동하는지 알려 드리겠습니다. – tjoenz

+0

바이올린의 코드를 자세히 설명해 주시겠습니까? 플러그인 웹 사이트 링크일까요? – Jasper

+0

웨이 포인트는 셀렉터 요소에 도달 할 때마다 이벤트를 발생시키는 정말 간단한 플러그인입니다. http://imakewebthings.com/jquery-waypoints/ 및 https : // github를 확인하십시오.자세한 내용은 com/imakewebthings/jquery-waypoints – dhaval

0

는 "영원히 스크롤"에 대한 방법을 설명하는 몇 가지 기사와 "무한 스크롤"이 있습니다 당신에 대해 묻는 것처럼 소리가 무엇 인 .

뒤에있는 아이디어는 사용자가 미리 결정된 수의 항목까지 아래로 스크롤 할 때 더 많은 데이터를 비동기 적으로로드하는 것입니다.

스크롤 막대 자체에서 거짓말 쟁이가된다는 점에서 그 방법과 관련하여 알려진 문제가 있습니다.

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/

+0

Ahh, thanks @jefferyhamby. 나는이 링크들을 읽을 것이다. 나는 이것이 매우 좋을 것이라고 생각하지만 언급 한 바와 같이 목록 맨 아래의 "더보기"버튼을 눌러야 할 것입니다. – tjoenz

관련 문제