/* * Потяните вниз, чтобы обновить, потяните вверх, чтобы загрузить больше демо-версий */ // Создать объект MeScroll var mescroll = new MeScroll("mescroll", { // Потяните вверх, чтобы обновить конфигурацию down : { auto: true, // Автоматически ли выполнять обратный вызов обратного вызова после завершения инициализации; по умолчанию true callback: downCallback, // обратный вызов для выпадающего обновления textInOffset: «Потяните вниз, чтобы обновить», textOutOffset: «Отпустить, чтобы обновить немедленно», textLoading: «Обновление ...» }, // выпадающий для загрузки конфигурации up: { auto: true, // загружаются ли данные первой страницы автоматически при загрузке во время инициализации; по умолчанию false isBounce: false, // здесь восстановление Ios запрещено, разбор (обязательно внимательно прочитайте, особенно последний пункт): http://www.mescroll.com/qa.html#q10 callback: upCallback, // обратный вызов Pull-up, здесь можно сокращать, эквивалентно callback: function (page) {upCallback (page);} } }); / * Обратный вызов обновления * / function downCallback() { // Данные о загрузке сети getListDataFromNet(0, 1, function (data) { mescroll.endSuccess(); // Установить данные списка setListData(data, false); }, function () { mescroll.endErr(); }); } / * Страница обратного вызова = {num: 1, size: 10}; num: текущая страница начинается с 1, size: количество данных на странице * / function upCallback(page) { // Данные о загрузке сети getListDataFromNet(page.num, page.size, function (curPageData) { // Обратный вызов для успешной работы в сети, скрытие статуса раскрывающегося обновления и раскрывающейся загрузки; mescroll.endSuccess(curPageData.length); // Установить данные списка setListData(curPageData, true); }, function () { // Обратный вызов при сбое сети, скрытие статуса раскрывающегося обновления и раскрывающейся загрузки; mescroll.endErr(); }); } / * Установить список данных * / function setListData(curPageData, isAppend) { var listDom = document.getElementById("newsList"); for (var i = 0; i < curPageData.length; i++) { var newObj = curPageData[i]; var str = '

' + newObj.title + '

'; str += '

' + newObj.content + '

'; var liDom = document.createElement("li"); liDom.innerHTML = str; if (isAppend) { listDom.appendChild (liDom); // Добавить в конец списка, потянуть вверх для загрузки } else { listDom.insertBefore (liDom, listDom.firstChild); // Добавить в начало списка, потянуть вниз, чтобы обновить } } } var downIndex = 0; function getListDataFromNet(pageNum, pageSize, successCallback, errorCallback) { // Задержка на одну секунду, симуляция сети setTimeout(function () { try { var newArr = []; if (pageNum == 0) { // Здесь обновляются смоделированные данные возврата ...ajax } else { // Здесь загружаются смоделированные данные возврата ...ajax } // Обратный вызов для успешного общения successCallback && successCallback(newArr); } catch (e) { // Обратный вызов для сбоя сети errorCallback && errorCallback(); } }, 1000) }