Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.11.2015, 13:07
Новичок на форуме
Отправить личное сообщение для rokis123 Посмотреть профиль Найти все сообщения от rokis123
 
Регистрация: 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>
Подскажите как это дело реализовать?
Ответить с цитированием
  #2 (permalink)  
Старый 04.11.2015, 13:16
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Листать страницы фактически будет не клиент, а сервер, а ему нужно знать направление, чтобы сделать соответствующий запрос в базу или же получить иные данные. Каким же образом он может это знать, если ссылки обоих направлений получаются фактически одни и те же:

previous_post_link('%link'
next_post_link('%link'

Каким это образом так получается?
Ответить с цитированием
  #3 (permalink)  
Старый 04.11.2015, 14:09
Новичок на форуме
Отправить личное сообщение для rokis123 Посмотреть профиль Найти все сообщения от rokis123
 
Регистрация: 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>

А дальше как быть?
Ответить с цитированием
  #4 (permalink)  
Старый 04.11.2015, 14:28
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от rokis123
Если так, то мне получается нужно заменить имена?

А это разве имена?
Ответить с цитированием
  #5 (permalink)  
Старый 04.11.2015, 15:14
Новичок на форуме
Отправить личное сообщение для rokis123 Посмотреть профиль Найти все сообщения от rokis123
 
Регистрация: 04.11.2015
Сообщений: 5

Ой, ссылки
Ответить с цитированием
  #6 (permalink)  
Старый 04.11.2015, 21:23
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

А не ой переменные, которые формируют ссылки? Правда странновато для куска из контекста прописанные, но остается надеяться, что формируют они ссылки корректные.
А дальше уже зависит от того какие ссылки в результате получаем и что за данные, которые листаем, источник их.
Ответить с цитированием
  #7 (permalink)  
Старый 05.11.2015, 12:06
Новичок на форуме
Отправить личное сообщение для rokis123 Посмотреть профиль Найти все сообщения от rokis123
 
Регистрация: 04.11.2015
Сообщений: 5

Вы говорите загадками для меня. В результатах обычные ссылки на следующий пост. Данные? Страница поста с картинкой... Фактически просто следующая страница и предыдущая. Я уже много где искал ответ на этот вопрос и толком ответа для своей ситуации не нашёл. Скажите просто - это сложно реализовать?
Ответить с цитированием
  #8 (permalink)  
Старый 05.11.2015, 13:34
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Да реализовать можно все что угодно или почти все. В вашем случае именно данные и их источник будут определять все. Вы думаете я больше вас знаю что вы пытаетесь вывести?

Можно иметь большой файл, который разбивать условно на M символов, листая их по страницам, и в этом случае можно передавать единственный параметр в запросе - числа от 0 до N, при этом число для "дальше" будет больше числа "назад" на единицу. Получили значение этого параметра, умножили его на M и получили нужно смещение fseek в файле, и считали из него M байт начиная от полученного смещения.

Можно иметь подготовленные данные, которые описаны массивом под ключами начиная с 1 до M. При этом каждый ключ может содержать разный размер данных, и каждый ключ это страница. Переданное значение в параметре запроса как и в первом случае определяет смещение, но в массиве, то есть получаем данные по ключу переданному в запросе.

Данные из базы получить можно также двояко, если листать по одной записи. Если отсортировать данные по id записей в таблице, то параметр может быть один - кнопки назад/вперед содержат идентификаторы записей. То есть запрос страницы, это запрос на выборку по известному ID.
Другой способ, это использование LIMIT как при обычной посторойчной навигации, только в данном случае количество записей на странице будет равно единице, то есть LIMIT N, N+1, где N полученное значение от кнопок назад/вперед.

Вы думаете я знаю, что именно у вас, правильно ли у вас формируются параметры запроса в ссылках, и правильно ли производится расчет смещений при каждом запросе страницы?

Собственно кода клиентского можно было и не приводить, а рассказать что вы получаете и как (что является параметрами запроса), и почему не листает. И разбирать нужно серверный скрипт, на нем у вас проблемы.

А пока не будет от вас четких пояснений, вашего серверного кода, который обрабатывает запрос и получает данные из...?, что-то вам сказать конкретно по вашей проблеме также проблематично.
Ответить с цитированием
  #9 (permalink)  
Старый 06.11.2015, 11:36
Новичок на форуме
Отправить личное сообщение для rokis123 Посмотреть профиль Найти все сообщения от rokis123
 
Регистрация: 04.11.2015
Сообщений: 5

А нельзя ли сделать чтобы при нажиме клавиши производился клик по DIV элементу? Или всё равно придётся лезть в серверный запрос?
Ответить с цитированием
  #10 (permalink)  
Старый 06.11.2015, 12:11
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от rokis123
А нельзя ли сделать чтобы при нажиме клавиши производился клик по DIV элементу?

Можно, но это не решает проблемы, клиент только щелкает, и если у вас не листает, значит клиент не то запрашивает, не то потому, что серверный скрипт у вас лажает.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
плавный скролинг при нажатии кнопки на форме sones Элементы интерфейса 14 23.03.2015 20:32
смена картинок при нажатии sdff Общие вопросы Javascript 15 08.02.2014 17:08
Присваивание класса при нажатии на ссылку skorpeeon Элементы интерфейса 10 25.07.2013 20:07
Неповторяющаяся заставка (при возвращении с других страниц сайта) thrastogotch jQuery 3 07.06.2012 17:57
SyntaxHighlighter подсветка при нажатии faraday Общие вопросы Javascript 3 31.03.2012 23:43