Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #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));
  }
});
Ответить с цитированием
  #2 (permalink)  
Старый 14.05.2018, 09:53
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

Оставить так, остальное в принципе не нужно.
$('.js-ui-accordion').accordion({ collapsible: true, heightStyle: 'content' });
Ответить с цитированием
  #3 (permalink)  
Старый 14.05.2018, 10:16
Интересующийся
Отправить личное сообщение для oleg13321 Посмотреть профиль Найти все сообщения от oleg13321
 
Регистрация: 14.05.2018
Сообщений: 24

Сообщение от Rise Посмотреть сообщение
Оставить так, остальное в принципе не нужно.
$('.js-ui-accordion').accordion({ collapsible: true, heightStyle: 'content' });
Я правильно понимаю, что всю ту остальную портянку заменить на эту строку?
Ответить с цитированием
  #4 (permalink)  
Старый 14.05.2018, 10:18
Интересующийся
Отправить личное сообщение для oleg13321 Посмотреть профиль Найти все сообщения от oleg13321
 
Регистрация: 14.05.2018
Сообщений: 24

Спасибо)))

А можете объяснить, что было не так?!
Ответить с цитированием
  #5 (permalink)  
Старый 14.05.2018, 10:47
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

Сообщение от oleg13321
А можете объяснить, что было не так?!
Шутите? Я же написал.
Ответить с цитированием
  #6 (permalink)  
Старый 14.05.2018, 16:06
Интересующийся
Отправить личное сообщение для oleg13321 Посмотреть профиль Найти все сообщения от oleg13321
 
Регистрация: 14.05.2018
Сообщений: 24

Ну...
Я понадеялся, что мне прям тыкая в лицо знаниями будут говорить, вот эта строка делает то то и из-за нее у тебя менялось значение адресной строки. И вообще растолковать неофиту, что да как и как делать не нужно, на этом примере)
Или еще как-то)
Ну... увы и ах.
А так, я собственно понял о чем там.
Ответить с цитированием
  #7 (permalink)  
Старый 14.05.2018, 16:08
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,723

Сообщение от oleg13321
Я понадеялся, что мне прям тыкая в лицо знаниями будут говорить, вот эта строка делает то то и из-за нее у тебя менялось значение адресной строки.
Из-за вот этой вот стоки у вас менялось значение адресной строки:
history.pushState(null, null, '#' + newHeaderId);
Ответить с цитированием
  #8 (permalink)  
Старый 14.05.2018, 16:13
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

oleg13321,
Вся остальная портянка отвечала за адресную строку. А зачем вам подробности? Если вам интересно зачем это было надо в оригинале, то чтобы при переходе по такой ссылке открывалась соответствующая вкладка аккордеона.

Последний раз редактировалось Rise, 14.05.2018 в 16:22.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Плагин jQuery - как сгенерить событие? maxapet jQuery 1 31.08.2015 09:44
Как передать данные в другую панель из выбранной строки таблицы. layout: 'card'. Пролетарий ExtJS 5 03.06.2015 22:53
Как обрезать строку и добавить символы в середине, в зависимости от длинны строки andreyua Firefox/Mozilla 12 10.12.2010 15:44
Как нажать кнопку из адресной строки? nnst Элементы интерфейса 2 16.04.2010 13:56
Как можно изменить URL в адресной строке браузера? балерун Events/DOM/Window 12 17.11.2009 13:08