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

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

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

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

      
<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, 07:31
modx.pro
3 377
0

Комментарии: 29

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);
                    }
и закомментируйте
    Егор К.
    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.
      lexikon
      20 августа 2016, 12:57
      0
      Uncaught ReferenceError: $ is not defined
      jQuery подключен?
      Убрать скролл как Вы указали попробую и отпишу, но хотелось бы обработать событие без редактирования исходного кода pdopage.js.
      как вы обработаете без редактирования?)))
      Если в исходном коде явно указано что если
      ajaxMode == default
      , то скроллить страницу вверх?!))))

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

        Но скроллит все равно вверх. Кеш в modx чистил тоже.
          lexikon
          20 августа 2016, 13:09
          0
          у меня все работает — только что проверял. Чистите кеш в браузере, а не в modx. Это клиентский кеш.
            Егор К.
            20 августа 2016, 13:10
            0
            Сейчас попробую почистить кеш в браузере. Спасибо.
              Егор К.
              20 августа 2016, 13:30
              0
              Скроллит зараза всеравно
                lexikon
                20 августа 2016, 13:31
                0
                ссылку в студию
                  Егор К.
                  20 августа 2016, 13:35
                  0
                  он у меня пока локально в разработке. На продуктив не выложен.
                    lexikon
                    20 августа 2016, 13:38
                    0
                    тогда могу посоветовать еще раз проверить ваши изменения, вникнуть в них, открыть сайт в инкогнито режиме. Открыть в конце концов js файл pdopage в браузере и посмотреть закомментирован ли данный участок кода
                      Егор К.
                      20 августа 2016, 13:40
                      0
                      Опубликовал в нете
                    Егор К.
                    20 августа 2016, 13:40
                    0
                    www.obshee-delo72.ru/
                    Раздел «Новости»
                      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);
                          });
                      });
                        Егор К.
                        20 августа 2016, 13:53
                        0
                        Все равно выдает ошибку.
                        obshee-delo72.ru/:332 Uncaught ReferenceError: $ is not defined

                        Да ладно с этим… Вот на счет скрола, Вы не посмотрели на сайте?
                          lexikon
                          20 августа 2016, 13:55
                          0
                          скролл не работает так как скрипт прерывается.
                          Егор К.
                          20 августа 2016, 13:59
                          0
                          Скроллит вверх. Магия какая-то, ибо код указанный Вами закомментировал.
                          lexikon
                          20 августа 2016, 14:00
                          +1
                          Исправьте:
                          (function($){
                              $(document).on('pdopage_load', function(e, config, response) {
                          	console.log(e, config, response);
                              });
                          });
                          всё заработает
                          Егор К.
                          20 августа 2016, 14:03
                          0
                          Исправил. Функция работает. В консоле ошибок нет.
                          Да и сама пагинация как и раньше работает нормально. Только скролл остался.
                          lexikon
                          20 августа 2016, 13:57
                          0
                          пардон я опечатался выше.
                          не$(function(){ а (function($){
                          Егор К.
                          20 августа 2016, 14:01
                          0
                          С консоли ошибка ушла. Скролл остался ))
                          lexikon
                          20 августа 2016, 14:03
                          0
                          у вас в pdoPage в параметрах сниппета указано ajax=`1` и ajaxMode=`default`?
                          Егор К.
                          20 августа 2016, 14:09
                          0
                          у вас в pdoPage в параметрах сниппета указано ajax=`1` и ajaxMode=`default`?
                          &ajaxMode=`default`
                          Марат Марабар
                          20 августа 2016, 14:04
                          0
                          $ is not defined
                          Скрипт pdoPage подключается — он есть в исходном коде? Скорее всего нет.
                          Егор К.
                          20 августа 2016, 14:11
                          0
                          Скрипт pdoPage подключается — он есть в исходном коде? Скорее всего нет.
                          Я уже убрал этот скрипт
            Егор К.
            20 августа 2016, 13:08
            0
            Да у меня еще и в стиле «лендингпейдж» сайт сделан, поэтому при скроллинге теряется секция из вида.
              Егор К.
              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>
          Егор К.
          20 августа 2016, 14:38
          0
          На счет как убрать скролл, подскажет кто-нибудь?
            Егор К.
            20 августа 2016, 17:45
            0
            Вопрос закрыт. Разобрался. Всем спасибо!!!
              Егор К.
              20 августа 2016, 17:51
              +1
              Как оказалось сам перемудрил, а нужно было сделать по мануалу после чего… вуаля все заработало ))) Блин только целый день убил на это ))
                Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                29