Проблема обработки события pdoPage Решено

Дополнение: pdoPage

Здравствуйте уважаемые!
Два дня ломаю голову с проблемой редиректа в pdoPage.
Скроллит страницу вверх на первую вследствие отсутствия результатов или некорректном параметре &page.

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

Заранее благодарю за помощь!

<cut/>      
<section>
	<div class="container">
		<div class="row">
 			<div  id="pdopage" class="center wow fadeInDown animated">
				<div class="rows">
					[[!pdoPage?
					&tpl=`@INLINE <p>[[+idx]] <a href="/[[+uri]]">[[+pagetitle]]</a></p>`
					&element=`getResources`
					&parents=`6` 
					&tpl=`miniBlog` 
					&limit=`6`
					&includeTVs=`images`
					&ajaxMode=`default`
					]]
				</div>
			</div>
		</div><!--/.row-->
	</div><!--/.container-->
	
	<div class="container">
		<div class="row">
			[[!+page.nav]]

			<script type="text/javascript">
											
			(function($){
			$(document).on('pdopage_load', function(e, config, response) 
			{console.log(e, config, response);});
			});
							
			</script>

       		</div><!--/.row-->
    	</div><!--/.container-->
            								            								
</section>
20 августа 2016, 10:31    Егор К.   
0    432 0

Комментарии (29)

  1. lexikon 20 августа 2016, 12:50 # 0
    $(document).on('pdopage_load', function(e, config, response) {
    	console.log(e, config, response);
    
    });
    Пробуйте так — работает.
    Чтобы убрать скролл — залезьте в pdopage.js, найдите код
    if (config['mode'] == 'default') {
                            $('html, body').animate({scrollTop: wrapper.position().top - 50 || 0}, 0);
                        }
    и закомментируйте
    1. Егор К. 20 августа 2016, 12:54 # 0
      Добавил как Вы писали:
      $(document).on('pdopage_load', function(e, config, response) {
      console.log(e, config, response);

      });

      Консоль ругается теперь так: (index):372 Uncaught ReferenceError: $ is not defined
      — Убрать скролл как Вы указали попробую и отпишу, но хотелось бы обработать событие без редактирования исходного кода pdopage.js.
      1. lexikon 20 августа 2016, 12:57 # 0
        Uncaught ReferenceError: $ is not defined
        jQuery подключен?
        Убрать скролл как Вы указали попробую и отпишу, но хотелось бы обработать событие без редактирования исходного кода pdopage.js.
        как вы обработаете без редактирования?)))
        Если в исходном коде явно указано что если
        ajaxMode == default
        , то скроллить страницу вверх?!))))

        Вообще понятно зачем сделан скролл, ведь без ajax новая страница все равно бы загрузилась вверху. Другое дело что если вы используете на страницах в pdoPage лимит в 3 элемента или 4, тогда скролл начинает раздражать)
        1. Егор К. 20 августа 2016, 13:06 # 0
          )) ну так то так.
          Я закомментировал указанные Вами строки через программу Sublime Text в pdopage.js по адресу:
          \assets\components\pdotools\js\pdopage.js

          Но скроллит все равно вверх. Кеш в modx чистил тоже.
          1. lexikon 20 августа 2016, 13:09 # 0
            у меня все работает — только что проверял. Чистите кеш в браузере, а не в modx. Это клиентский кеш.
            1. Егор К. 20 августа 2016, 13:10 # 0
              Сейчас попробую почистить кеш в браузере. Спасибо.
              1. Егор К. 20 августа 2016, 13:30 # 0
                Скроллит зараза всеравно
                1. lexikon 20 августа 2016, 13:31 # 0
                  ссылку в студию
                  1. Егор К. 20 августа 2016, 13:35 # 0
                    он у меня пока локально в разработке. На продуктив не выложен.
                    1. lexikon 20 августа 2016, 13:38 # 0
                      тогда могу посоветовать еще раз проверить ваши изменения, вникнуть в них, открыть сайт в инкогнито режиме. Открыть в конце концов js файл pdopage в браузере и посмотреть закомментирован ли данный участок кода
                      1. Егор К. 20 августа 2016, 13:40 # 0
                        Опубликовал в нете
                    2. Егор К. 20 августа 2016, 13:40 # 0
                      www.obshee-delo72.ru/
                      Раздел «Новости»
                      1. lexikon 20 августа 2016, 13:45 # +1
                        у вас вообще ajax не работает подгрузка, потому что js не в слепую надо копировать а подумать прежде.
                        $(document).on('pdopage_load', function(e, config, response) {
                        	console.log(e, config, response);
                        });
                        скрипт вызывается до того момента пока инициализирован jQuery, для этого необходимо его обернуть в $(function() {}); что равно событию document.ready
                        $(function(){
                            $(document).on('pdopage_load', function(e, config, response) {
                        	console.log(e, config, response);
                            });
                        });
                        1. Егор К. 20 августа 2016, 13:53 # 0
                          Все равно выдает ошибку.
                          obshee-delo72.ru/:332 Uncaught ReferenceError: $ is not defined

                          Да ладно с этим… Вот на счет скрола, Вы не посмотрели на сайте?
                          1. lexikon 20 августа 2016, 13:55 # 0
                            скролл не работает так как скрипт прерывается.
                            1. lexikon 20 августа 2016, 13:57 # 0
                              пардон я опечатался выше.
                              не$(function(){ а (function($){
                              1. Егор К. 20 августа 2016, 13:59 # 0
                                Скроллит вверх. Магия какая-то, ибо код указанный Вами закомментировал.
                                1. lexikon 20 августа 2016, 14:00 # +1
                                  Исправьте:
                                  (function($){
                                      $(document).on('pdopage_load', function(e, config, response) {
                                  	console.log(e, config, response);
                                      });
                                  });
                                  всё заработает
                                  1. Егор К. 20 августа 2016, 14:01 # 0
                                    С консоли ошибка ушла. Скролл остался ))
                                    1. Егор К. 20 августа 2016, 14:03 # 0
                                      Исправил. Функция работает. В консоле ошибок нет.
                                      Да и сама пагинация как и раньше работает нормально. Только скролл остался.
                                      1. lexikon 20 августа 2016, 14:03 # 0
                                        у вас в pdoPage в параметрах сниппета указано ajax=`1` и ajaxMode=`default`?
                                        1. Марат Марабар 20 августа 2016, 14:04 # 0
                                          $ is not defined
                                          Скрипт pdoPage подключается — он есть в исходном коде? Скорее всего нет.
                                          1. Егор К. 20 августа 2016, 14:09 # 0
                                            у вас в pdoPage в параметрах сниппета указано ajax=`1` и ajaxMode=`default`?
                                            &ajaxMode=`default`
                                            1. Егор К. 20 августа 2016, 14:11 # 0
                                              Скрипт pdoPage подключается — он есть в исходном коде? Скорее всего нет.
                                              Я уже убрал этот скрипт
                                  2. Егор К. 20 августа 2016, 13:08 # 0
                                    Да у меня еще и в стиле «лендингпейдж» сайт сделан, поэтому при скроллинге теряется секция из вида.
                                    1. Егор К. 20 августа 2016, 13:28 # 0
                                      jQuery подключен?
                                      Да, у меня он в первой строке подгрузки скриптов подключен:
                                      jQuery подключен:
                                      <script src="assets/app/js/jquery.js"></script>
                                      <script src="assets/app/js/bootstrap.min.js"></script>
                                      <script src="assets/app/js/jquery.background-video.js"></script>
                                      <script src="assets/app/js/jquery.prettyPhoto.js"></script>
                                      <script src="assets/app/js/jquery.isotope.min.js"></script>
                                      <script src="assets/app/js/main.js"></script>
                                      <script src="assets/app/js/wow.min.js"></script>
                                      <script src="assets/app/js/scrollUp.js"></script>
                                      <script src="assets/app/js/jquery.popmenu.js"></script>
                                      
                                2. Егор К. 20 августа 2016, 14:38 # 0
                                  На счет как убрать скролл, подскажет кто-нибудь?
                                  1. Егор К. 20 августа 2016, 17:45 # 0
                                    Вопрос закрыт. Разобрался. Всем спасибо!!!
                                    1. Егор К. 20 августа 2016, 17:51 # +1
                                      Как оказалось сам перемудрил, а нужно было сделать по мануалу после чего… вуаля все заработало ))) Блин только целый день убил на это ))
                                      Вы должны авторизоваться, чтобы оставлять комментарии.