Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > location.hash в IE9


Автор: nule 15.3.2013, 16:41
Здравствуйте!
Для развертывания/сворачивания блока с контентом использую такой скрипт:
Код

$(document).ready(function() {
$('#block').hide();
$('#open-close').click(function(event) {
    event.preventDefault(); // Для того чтобы при нажатии на ссылку не кидало вверх
$('#block').slideToggle();
location.hash = this.hash;
 }); 

if (location.hash == '#block') {
    $('#open-close').click();
  }
});


Код

<a id="open-close" href="#block">Подробнее</a>
<div id="block">Контент</div>

Блок разворачивается не только по щелчку на ссылку, но и по переходу с другой страницы на якорь #block. Но в IE9 это не работает, т.к. он игнорирует  location.hash. Как адаптировать скрипт по IE? Ниже 9 версии не интересует.
Спасибо!

Автор: skyboy 15.3.2013, 21:17
Цитата(nule @  15.3.2013,  15:41 Найти цитируемый пост)
 Но в IE9 это не работает, т.к. он игнорирует  location.hash

точно? у меня нормально читается свойство.

Автор: nule 16.3.2013, 09:27
Точно. IE правильно перекидывает на якорь, но разворачивание блока не происходит. Т.е. проверка if (location.hash == '#block') не выполняется.

Автор: skyboy 16.3.2013, 23:37
http://fiddle.jshell.net/myLvw/1/show/#block
нормально работает в IE.
я не совсем понял, в каком случае у тебя не работает. возможно, вся проблема в том, что при переходу по якорю не обновляется страница, следовательно, не запускается обработчик для docment.ready

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)