Показать сообщение отдельно
  #1 (permalink)  
Старый 14.05.2018, 09:45
Интересующийся
Отправить личное сообщение для oleg13321 Посмотреть профиль Найти все сообщения от oleg13321
 
Регистрация: 14.05.2018
Сообщений: 24

jquery-ui.min.js как запретить изменения адресной строки браузера?
Использую jquery-ui.min.js для создания аккордеона на сайте.
Сайт на Modx динамику Fenom-ом прописываю.

Столкнулся с проблемой.
На всех страницах, в которых присутствует аккордеон адресная строка приобретает такой вид:
http://celestaclub.ru/#ui-id-3

А это приводит к тому, что после обновления страницы, идет переадресация на главную. Что ни есть хорошо для меня.

Ссылка на то откуда я его взял: http://nisnom.com/veb-razrabotki/jqu...ion/#more-1702

На самом сайте источнике, я такой особенности не замечаю.
Объясните, пожалуйста, что я , возможно, сделал не так или наоборот не сделал.

Сам код, который у меня собственно и работает. Руководствуясь принципом: "работает не трогай", ничего не менял.
'use strict';

var $uiAccordion = $('.js-ui-accordion');

$uiAccordion.accordion({
  collapsible: true,
  heightStyle: 'content',

  activate: function activate(event, ui) {
    var newHeaderId = ui.newHeader.attr('id');

    if (newHeaderId) {
      history.pushState(null, null, '#' + newHeaderId);
    }
  },

  create: function create(event, ui) {
    var $this = $(event.target);
    var $activeAccordion = $(window.location.hash);

    if ($this.find($activeAccordion).length) {
      $this.accordion('option', 'active', $this.find($this.accordion('option', 'header')).index($activeAccordion));
    }
  }
});

$(window).on('hashchange', function (event) {
  var $activeAccordion = $(window.location.hash);
  var $parentAccordion = $activeAccordion.parents('.js-ui-accordion');

  if ($activeAccordion.length) {
    $parentAccordion.accordion('option', 'active', $parentAccordion.find($uiAccordion.accordion('option', 'header')).index($activeAccordion));
  }
});
Ответить с цитированием