2011-12-15 4 views
0

Хорошо, поэтому я пытаюсь создать систему, состоящую из трех частей. Меню, область содержимого и область разбиения на страницы. Каждая из этих областей, исключая меню, загружается через вызов .load из jquery во время выполнения. Кстати, я делаю это как плагин wordpress.Проблемы с разбивкой по JQuery

Например, при загрузке я загружаю posts.php через .load в класс .content и page.php через .load в класс .pagination. Все это делается с настройками по умолчанию, т. Е. Я отправляю настройки по умолчанию через почтовый метод загрузки. Код меню находится с самого начала.

Проблема с разбиением на страницы. Я бы хотел, чтобы это было, когда вы нажимаете следующую страницу, он загружает следующий контент и перемещает страницу вверх по системе разбивки на страницы, причем все они не загружают всю страницу в wordpress. Я решил, что jquery будет работать здесь, но проблема в том, что если я вызову разбивку на страницы как вызов jquery, когда пользователь нажимает следующую страницу, обнаружение должно быть вложено в первый вызов страницы, так? Который из-за массивной петли.

Таким образом, проблема заключается в том, как создать систему разбиения на страницы, которая будет вызывать следующий контент и загружать его в область содержимого и перемещать страницу в своей собственной системе без необходимости повторной загрузки всей страницы из-за того, что она является плагин в wordpress.

Любая помощь?

Редактировать: Я хочу указать, что я новичок в jQuery.

+0

Я думаю, что моя проблема заключается в том, как делать вложенные вызовы. То есть я загрузил файл через .load, и возвращенный html теперь является новым dom-объектом, и поэтому для вызова элемента в нем, из того, что я знаю, вы должны поставить его под функцию .load, которая загрузила html. – Tempus35

ответ

1

Если предположить, что данные load() возвращений, который выглядит примерно так:

<ul> 
    <li>item1</li> 
    <li>item2</li> 
</ul> 
<div id='pagination'> 
    1 
    <a href='/path/to/this/page?page=2'>2</a> 
    <a href='/path/to/this/page?page=3'>3</a> 
</div> 

Вы можете изменить все <a> теги после загрузки их в определенной DIV, например, так:

$('#mymenu').load('/path/to/this/page?page=1', function(){ 
    setAjaxLinks(); 
}); 

И есть функция setAjaxLinks определяется следующим образом:

$('#mymenu').find('a').click(function(event){ 
    event.preventDefault(); 
    $('#mymenu').load($(this).attr('href'), function(){ 
     setAjaxLinks(); 
    }); 
    return false; 
}); 

Ключевым моментом функции setAjaxLinks является то, что она устанавливает функцию для того, что делать, когда нажимается ссылка. Который является:

  1. Отправить запрос AJAX на следующую страницу и загрузить его в соответствующее место на странице.
  2. Найти пейджинговой связи в ответ, и заменить их click события с тем, что мы хотели бы пейджинговой связи, чтобы сделать, что ...

    A. Отправить запрос AJAX .. и

    B. Найти пейджинговой связи в ответ, и заменить их click события с ....

Таким образом, мы в конечном итоге с рекурсивным setAjaxLinks вызова.

+0

Интересно, но у меня действительно не было настройки для части страницы. У меня было по одному, что отправил обратно html, который был больше похож на $current для каждой страницы.У меня также была система разбиения на страницы, которая была загружена на первую страницу php и для нее не было jquery. Идея с первым заключалась в вызове $ («c_page»). Щелкните и получите его имя. и отправить эту информацию обратно через jquery, чтобы перезагрузить php для контента и разбивки на страницы, но я не мог заставить это работать. – Tempus35

+0

Что касается вашей функции setAjaxLinks, я теряюсь на том, как это будет работать. – Tempus35

Смежные вопросы