|
|
Модератор форума: JonMagon |
Сообщество uCoz Вебмастеру JavaScript, Flash и прочие технологии Скрипт "Предыдущее Следующее сообщение" |
Скрипт "Предыдущее Следующее сообщение" |
Установлен Скрипт "Предыдущее/Следующее сообщение". Загвоздка в том, что если страница с сообщением последняя, то при перелистывании на следующую попадаем на "ошибку 404". Как сделать так, чтобы скрипт определял последнюю страницу и кнопка "следующее сообщение" просто бы не появлялась и нажать на нее не было бы возможности у пользователя?
<script> a=location.href; b=a.split('-'); c=b.length; d=eval(c-1); e=b[d]; f=a.split('-'+e)[0]; $('#pages').html('<a id="sel_buttons" href="'+f+'-'+eval(e-1)+'">Предыдущее сообщение</a><span id="i"> | </span><a id="sel_buttons" href="'+f+'-'+eval(e*1+1)+'">Следующее сообщение</a>'); $.ajax({ type: 'GET', url: f+'-'+eval(e*1+1), error: function(){$('#a, #i').hide();} };); $.ajax({ type: 'GET', url: f+'-'+eval(e-1), error: function(){$('#b, #i').hide();} };); </script> Заметил еще такую фишку: вертикальная черта между кнопками как раз исчезает когда следующего сообщения не существует (но кнопка "следующее сообщение" все равно есть и нажать на нее можно). Плюс: На urle каждой кнопки (предыдущее/следующее) при наведении мышки возникает ссылка на страницу с ЧПУ Url-ом , что не комильфо, потому что указывается ЧПУ страницы, на которой сейчас находится пользователь + номер . Нужно сделать так, чтобы скриптом обрезались ЧПУ и оставался только номер страницы (напр. не http://.....ru/......./......./......./......./104-1-0-3857 , а просто короткой ссылкой http://.....ru/104-1-0-3857 Сообщение отредактировал briks400 - Воскресенье, 13 Окт 2013, 13:02:02
|
<script> a=location.href; b=a.split('-'); c=b.length; d=eval(c-1); e=b[d]; f=a.split('-'+e)[0]; $('#pages').html('<a id="sel_buttons" href="'+f+'-'+eval(e-1)+'">Предыдущее сообщение</a><span id="i"> | </span><a id="sel_buttons" href="'+f+'-'+eval(e*1+1)+'">Следующее сообщение</a>'); $.ajax({ type: 'GET', url: f+'-'+eval(e*1+1), error: function(){$('#a, #i').hide();} };); $.ajax({ type: 'GET', url: f+'-'+eval(e-1), error: function(){$('#b, #i').hide();} };); </script> Правда теперь его установка стала зависеть от модуля. Вот скрипт для модуля новостей. Код <div id="pages"></div> <script> var blockid = '#pages'; //здесь храним id блока, в котором будут ссылки var moduleid = '2'; //здесь храним id модуля, в котором будут ссылки var urlarray = location.href.split('-'); var materialid = urlarray[urlarray.length - 1]; $(blockid).html('[ <a href="/index/86-'+eval(materialid-1)+'-5-' + moduleid + '">Предыдущий материал</a><span> | </span><a href="/index/86-'+eval(materialid*1+1)+'-5-' + moduleid + '">Следующий материал</a> ]'); $.get('/index/86-' + eval(materialid*1+1) + '-5-' + moduleid, function(data){ if ($(data).text().substring(0, 5) == 'Error') { $(blockid).children().eq(1).hide(); $(blockid).children().eq(2).hide(); } }); $.get('/index/86-' + eval(materialid-1) + '-5-' + moduleid, function(data){ if ($(data).text().substring(0, 5) == 'Error') { $(blockid).children().eq(1).hide(); $(blockid).children().eq(0).hide(); } }); </script> var moduleid = '2'; //здесь храним id модуля, в котором будут ссылки на нужную: 1 - Блог 2 - Новости сайта 3 - Каталог статей 4 - Фотоальбом 5 - Каталог файлов 6 - Каталог сайтов 7 - Доска объявлений |
Цитата $;Tiny$;1255491 Правда теперь его установка стала зависеть от модуля. Вот скрипт для модуля новостей. <div id="pages"></div> <script> var blockid = '#pages'; //здесь храним id блока, в котором будут ссылки var moduleid = '2'; //здесь храним id модуля, в котором будут ссылки var urlarray = location.href.split('-'); var materialid = urlarray[urlarray.length - 1]; $(blockid).html('[ <a href="/index/86-'+eval(materialid-1)+'-5-' + moduleid + '">Предыдущий материал</a><span> | </span><a href="/index/86-'+eval(materialid*1+1)+'-5-' + moduleid + '">Следующий материал</a> ]'); $.get('/index/86-' + eval(materialid*1+1) + '-5-' + moduleid, function(data){ if ($(data).text().substring(0, 5) == 'Error') { $(blockid).children().eq(1).hide(); $(blockid).children().eq(2).hide(); } };); $.get('/index/86-' + eval(materialid-1) + '-5-' + moduleid, function(data){ if ($(data).text().substring(0, 5) == 'Error') { $(blockid).children().eq(1).hide(); $(blockid).children().eq(0).hide(); } };); </script> Доброго время суток. Подскажите, пожалуйста, куда его добавлять надо, вставил в страницу товара не заработало. Спасибо за понимания! Сообщение отредактировал Killberg - Пятница, 24 Июн 2016, 16:43:44
|
Killberg, есть рабочий вариант: https://uscript.pro/shop/30/item/sledujushhij-predydushhij-material
Профессиональный сервис опросов WebAsk
|
Killberg, есть рабочий вариант: https://uscript.pro/shop/30/item/sledujushhij-predydushhij-material Сообщение отредактировал Killberg - Вторник, 28 Июн 2016, 18:39:13
|
| |||
| |||