|
|
Модератор форума: JonMagon |
Сообщество uCoz Вебмастеру JavaScript, Flash и прочие технологии Подгрузка материалов (Подгрузка материалов) |
Подгрузка материалов |
Допустим в модуле Блог у меня есть 13 материалов, на каждой странице показываются только 10 и того у меня получается 2 страницы с материалами /blog/ и /blog/2 теперь я вместо page selector вывожу ссылку Показать еще (Желательно чтобы page selector вообще не использовался) при нажатии у меня выводятся еще материалов но уже со страницы /blog/2 там их было только 3 и ссылка скрывается так как больше страниц нет. Как это реализовать? Дайте ссылку на скрипт или если не сложно помогите))))
|
Вставьте это на вашу страницу куда хотите )))
Код $(document).ready(function(){ var meta_data = new Object(); meta_data = {blogs_body:'',this_num_of_pages:'',last_num_of_pages:''} $.get('/blog/',function(data){meta_data.blogs_body = $('#blogs',data).html(),meta_data.last_num_of_pages = $('#pagesBlock1',data).text(),meta_data.this_num_of_pages=$('.swchItemA:eq(0)',data).text(); $('#ВАШ ID БЛОКА КУДА ВЫГРУЖАЮТСЯ ДАННЫЕ').html(meta_data.blogs_body)}) function get_more() {var next_page = parseInt(meta_data.this_num_of_pages)+1; $.get('/blog/'+next_page, function(data){meta_data.blogs_body = $('#blogs',data).html(); $('#ВАШ ID БЛОКА КУДА ВЫГРУЖАЮТСЯ ДАННЫЕ').append(meta_data.blogs_body)}) } }); *не забудьте поменять "ВАШ ID БЛОКА КУДА ВЫГРУЖАЮТСЯ ДАННЫЕ" )) Удачи! Спасибо = "+" в репутацию
Любые вопросы по: - Javascript, jQuery, HTML, CSS - Верстке макетов и установке их на сайты - Нестандартным решениям |
M-Brook, где сама ссылка? Напиши по подробней что куда ато я в js ноль и нечего там разобрать не мог))) ой ты господи.... ))) - значит смотрите вы написали что вы подгружаете данные блога на страницу = значит этот код ставите в любое место страницы куда будут подгружаться данные из блога - далее, замените "#ВАШ ID БЛОКА КУДА ВЫГРУЖАЮТСЯ ДАННЫЕ" на id или class (если на класс тогда вместо # ставим точку (.) ) - теперь о работе подгрузчика к вашей кнопке, блоку? или что вы там используете = к объекту с текстом "Показать еще" пропишите onclick="get_more()" на этом все, если опять не справитесь, тогда попрошу вас дать больше информации по вашему вопросу Удачи вам Спасибо = "+" в репутацию
Любые вопросы по: - Javascript, jQuery, HTML, CSS - Верстке макетов и установке их на сайты - Нестандартным решениям |
M-Brook, перекидывает на главную((( вот я вставляю этот скрипт на персональную страницу чтоб он выводил материалы
Код <script type="text/javascript"> document.write('<span class="h19"></span>'); $.get("$_BLOG_ACTIVITY_URL$", function(data) { var ifnohist = $("#blogactiv:first", data).html(); if (ifnohist == null) { $('.h19').html('<span style="color:#969696;">Материалов нет</span>'); } $("#blogactiv:lt(5)", data).each(function() { var histr = $(this).html(); $('.h19').before(histr); }); }); </script> Может с ним можно что то сделать? |
$('.h19') = находиться после скрипта?!
если да попробуйте завернуть скрипт в $(document).ready(function(){ ..... }); Спасибо = "+" в репутацию
Любые вопросы по: - Javascript, jQuery, HTML, CSS - Верстке макетов и установке их на сайты - Нестандартным решениям |
Собственно улучшил скрипт автоматической подгрузки. Подгрузка работает после нажатия на кнопку: подгрузить и дальше скроллингом.
Однако, на главной не работает. У кого есть какие версии почему? На главной выведен модуль "Каталог файлов" В блоге работает Адрес сайта: тыц При выводе /blog/ заменяю на /load/ может выводить ?pages Из собственного расследования выявлено, что блока pagesBlock1 нет, он заменен на pagesBlockuz1 , пытался поменять в скрипте на это - не помогло. Код <div id="conter">$BODY$</div> <button id="loader1">Подгрузить материалы</button> <script> if ($("#pagesBlock1").find(".swchItem:contains('»')").text() == '»') { $("#pagesBlock1").after('<div id="nextCont" class="input_submit alt"><div class="u_pos"></div></div>'); }; var more = true; $(window).scroll(function() { if(more) return; if($('.u_pos').position().top-$(window).scrollTop() < 1000) { Conte.to() } };); Conte = { to:function(){ $("#nextCont").html('<div align="center"><img src="/.s/img/icon/ajsml.gif" border="0" /></div>'); nextik = $("#pagesBlock1").find(".swchItem:contains('»')").attr('onclick').toString(); num = nextik.match(/\d/); $.get('/load/'+num, function(next){ $("#conter").append( $("#conter", next).html() ); $("#pagesBlock1").html( $("#pagesBlock1", next).html() ); $("#nextCont").html('<div class="u_pos"></div>'); if ($("#pagesBlock1", next).find(".swchItem:contains('»')").html() == null) { $("#nextCont").fadeOut(); }; };); } } $("#loader1").click(function() { more = false; $(this).hide(); Conte.to() };); </script> Сообщение отредактировал PorShen - Суббота, 06 Окт 2018, 20:15:44
|
Добрый день. Имеется Код
<div id="conter">$BODY$</div> <style>#pagesBlock1 {display:none;}</style> <div style="display:none;" id="pagesBlockuz1">$PAGE_SELECTOR$</div> <script type="text/javascript"> if ($("#pagesBlockuz1").find(".swchItem:contains('»')").text() == '»') { $("#pagesBlockuz1").after('<br><div id="nextCont" class="goto-photo-kn eGoto-photo" style="display:block;text-align:center;color:#000000"><div onclick="Conti.to();" style="padding:12px;"><b>Смотреть еще</b></div></div>'); }; Conti = { to:function(){ $("#nextCont").html('<div style="padding:13px"><img src="/skin/icons/load_materials.gif" border="0" /></div>'); nextik = $("#pagesBlockuz1").find(".swchItem:contains('»')").attr('onclick').toString(); num = nextik.match(/\d/); $.get('/photo/?page'+num, function(next){ $("#conter").append( $("#conter", next).html() ); $("#pagesBlockuz1").html( $("#pagesBlockuz1", next).html() ); $("#nextCont").html('<div onclick="Conti.to();" style="padding:12px;"><b>Смотреть еще</b></div>'); if ($("#pagesBlockuz1", next).find(".swchItem:contains('»')").html() == null) { $("#nextCont").fadeOut(); }; };); } } </script> Необходимо подгружать фотографии в фотоальбоме с следующей страницы по кнопке "Смотреть еще". Скрипn стоит но не работает в фотоальбоме Данный скрипт работает в каталоге статей если заменить photo на publ. Но в каталоге статей в коде $PAGE_SELECTOR$ имеем onclick="spages('2', this);return false;", чего нет в фотоальбоме., соответственно onklick в скрипте не срабатывает. Не пойму как допилить его. Добавлено (20 Дек 2022, 18:47:29) --------------------------------------------- Подкорректировал и добавил определение url и присвоение onclick со своим id к ссылкам $PAGE_SELECTOR$. Только есть небольшая проблема: При переходе на 9 страницу, начнет грузить с 1, а не 10ю имея onclick="spages('10'. На 10й странице тоже самое, начнет грузить с 1й., а не переходить на 11 имея onclick="spages('11'. <div id="conter">$BODY$</div> <style>#buttom-last-body{display:flex;flex-direction:column;}#pagesBlockuz1{order:2;}#nextCont{order:1;}</style> <div id="buttom-last-body"><?if($PAGE_SELECTOR1$)?><div style="margin: 5px 0;text-align:center;" id="pagesBlockuz1">$PAGE_SELECTOR$</div><?endif?> <script type="text/javascript"> if ($("#pagesBlockuz1").find(".swchItem:contains('»')").text() == '»') { $("#pagesBlockuz1").after('<br><div id="nextCont" class="goto-photo-kn eGoto-photo" style="display:block;text-align:center;color:#fff"><div onclick="Conti.to();" style="padding:12px;"><b>Смотреть еще</b></div></div>'); const url="$REQUEST_URI$"; var u=url.split("?page")[1]; if(u==undefined) {this.u = '1';} let unum = Number(u); var i=unum+1; var m='?page'+i; document.addEventListener('DOMContentLoaded', function() { let words = m.split('|'); let onclick = "spages(" + i + ", this);return false;"; let cls = words.map(a => `[href*="${a}"]`); document.querySelectorAll(cls).forEach(elem => elem.setAttribute('onclick', onclick)); };); }; Conti = { to:function(){ $("#nextCont").html('<div style="padding:13px"><img src="/skin/icons/load_materials.gif" border="0" /></div>'); nextik = $("#pagesBlockuz1").find(".swchItem:contains('»')").attr('onclick').toString(); num = nextik.match(/\d/); $.get('/photo/?page'+num,i=i+1, function(next){ $("#conter").append( $("#conter", next).html() ); $("#pagesBlockuz1").html( $("#pagesBlockuz1", next).html() ); $("#nextCont").html('<div onclick="Conti.to();" style="padding:12px;"><b>Смотреть еще</b></div>'); $.get(m='?page'+i,function(){ let words = m.split('|'); let onclick = "spages(" + i + ", this);return false;"; let cls = words.map(a => `[href*="${a}"]`); document.querySelectorAll(cls).forEach(elem => elem.setAttribute('onclick', onclick)); };); if ($("#pagesBlockuz1", next).find(".swchItem:contains('»')").html() == null) { $("#nextCont").fadeOut(); }; };); } } </script> </div> Сообщение отредактировал xeon1952 - Вторник, 20 Дек 2022, 18:56:08
|
| |||
| |||