04.11.2015, 13:07
|
Новичок на форуме
|
|
Регистрация: 04.11.2015
Сообщений: 5
|
|
Переключение страниц при нажатии стрелок на клавиатуре.
Пытаюсь сделать перелистывание страниц при нажатии кнопки на Wordpress движке. Пробовал через событие onclick и добавлял +1 к URL, но он у меня динамический и меняется то на 1 то на 3 числа, поэтому вариант не подошёл. Сам URL mysite/site/29448/. Придумал такой вариант:
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script type="text/javascript">
document.onkeydown = arrowChecker;
function arrowChecker(e) {
e = e || window.event;
if (e.keyCode == '37') { //left
var newHref = $( '.prev1' ).attr( 'href' );
window.location=newHref;
}
else if (e.keyCode == '39') { //right
var newHref = $( '.next1' ).attr( 'href' );
window.location=newHref;
}
}
</script>
Но он не работает! Подскажите почему?
И вот собственно код HTML, к которому я хочу всё это дело "привязать".
<div class='next1'>
<?php previous_post_link('%link', '<img src="#" width="45" height="35" alt="previous" />'); ?>
</div>
<div class='prev1'>
<?php next_post_link('%link', '<img src="#" width="45" height="35" alt="Next" />') ; ?>
</div>
Подскажите как это дело реализовать?
|
|
04.11.2015, 13:16
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Листать страницы фактически будет не клиент, а сервер, а ему нужно знать направление, чтобы сделать соответствующий запрос в базу или же получить иные данные. Каким же образом он может это знать, если ссылки обоих направлений получаются фактически одни и те же:
previous_post_link('%link'
next_post_link('%link'
Каким это образом так получается?
|
|
04.11.2015, 14:09
|
Новичок на форуме
|
|
Регистрация: 04.11.2015
Сообщений: 5
|
|
Сообщение от laimas
|
Листать страницы фактически будет не клиент, а сервер, а ему нужно знать направление, чтобы сделать соответствующий запрос в базу или же получить иные данные. Каким же образом он может это знать, если ссылки обоих направлений получаются фактически одни и те же:
previous_post_link('%link'
next_post_link('%link'
Каким это образом так получается?
|
Если так, то мне получается нужно заменить имена?
<div class='next1'>
<?php previous_post_link('%linkprev', '<img src="#" width="45" height="35" alt="previous" />'); ?>
</div>
<div class='prev1'>
<?php next_post_link('%linknext', '<img src="#" width="45" height="35" alt="Next" />') ; ?>
</div>
А дальше как быть?
|
|
04.11.2015, 14:28
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от rokis123
|
Если так, то мне получается нужно заменить имена?
|
А это разве имена?
|
|
04.11.2015, 15:14
|
Новичок на форуме
|
|
Регистрация: 04.11.2015
Сообщений: 5
|
|
Ой, ссылки
|
|
04.11.2015, 21:23
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
А не ой переменные, которые формируют ссылки? Правда странновато для куска из контекста прописанные, но остается надеяться, что формируют они ссылки корректные.
А дальше уже зависит от того какие ссылки в результате получаем и что за данные, которые листаем, источник их.
|
|
05.11.2015, 12:06
|
Новичок на форуме
|
|
Регистрация: 04.11.2015
Сообщений: 5
|
|
Вы говорите загадками для меня. В результатах обычные ссылки на следующий пост. Данные? Страница поста с картинкой... Фактически просто следующая страница и предыдущая. Я уже много где искал ответ на этот вопрос и толком ответа для своей ситуации не нашёл. Скажите просто - это сложно реализовать?
|
|
05.11.2015, 13:34
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Да реализовать можно все что угодно или почти все. В вашем случае именно данные и их источник будут определять все. Вы думаете я больше вас знаю что вы пытаетесь вывести?
Можно иметь большой файл, который разбивать условно на M символов, листая их по страницам, и в этом случае можно передавать единственный параметр в запросе - числа от 0 до N, при этом число для "дальше" будет больше числа "назад" на единицу. Получили значение этого параметра, умножили его на M и получили нужно смещение fseek в файле, и считали из него M байт начиная от полученного смещения.
Можно иметь подготовленные данные, которые описаны массивом под ключами начиная с 1 до M. При этом каждый ключ может содержать разный размер данных, и каждый ключ это страница. Переданное значение в параметре запроса как и в первом случае определяет смещение, но в массиве, то есть получаем данные по ключу переданному в запросе.
Данные из базы получить можно также двояко, если листать по одной записи. Если отсортировать данные по id записей в таблице, то параметр может быть один - кнопки назад/вперед содержат идентификаторы записей. То есть запрос страницы, это запрос на выборку по известному ID.
Другой способ, это использование LIMIT как при обычной посторойчной навигации, только в данном случае количество записей на странице будет равно единице, то есть LIMIT N, N+1, где N полученное значение от кнопок назад/вперед.
Вы думаете я знаю, что именно у вас, правильно ли у вас формируются параметры запроса в ссылках, и правильно ли производится расчет смещений при каждом запросе страницы?
Собственно кода клиентского можно было и не приводить, а рассказать что вы получаете и как (что является параметрами запроса), и почему не листает. И разбирать нужно серверный скрипт, на нем у вас проблемы.
А пока не будет от вас четких пояснений, вашего серверного кода, который обрабатывает запрос и получает данные из...?, что-то вам сказать конкретно по вашей проблеме также проблематично.
|
|
06.11.2015, 11:36
|
Новичок на форуме
|
|
Регистрация: 04.11.2015
Сообщений: 5
|
|
А нельзя ли сделать чтобы при нажиме клавиши производился клик по DIV элементу? Или всё равно придётся лезть в серверный запрос?
|
|
06.11.2015, 12:11
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от rokis123
|
А нельзя ли сделать чтобы при нажиме клавиши производился клик по DIV элементу?
|
Можно, но это не решает проблемы, клиент только щелкает, и если у вас не листает, значит клиент не то запрашивает, не то потому, что серверный скрипт у вас лажает.
|
|
|
|