Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Как сделать, чтобы после обновления открывался нужный раздел (https://javascript.ru/forum/events/35996-kak-sdelat-chtoby-posle-obnovleniya-otkryvalsya-nuzhnyjj-razdel.html)

Mukhtar 28.02.2013 20:39

Если кто сможет помочь, буду благодарен. )))

рони 28.02.2013 22:50

Mukhtar,
посмотрите тут

Mukhtar 01.03.2013 01:41

Цитата:

Сообщение от рони (Сообщение 238034)
Mukhtar,
посмотрите тут

Спасибо, Рони, но я не силен в таких вещах ))... С этим недавно столкнулся. Просто осталась одна строка, ее не могу дописать, как не пытался, не смотрел мануалы, не выходит. Я определяю после обновления страницы с помощью ХЭШа на какую кнопку надо нажать, но никак не выходит. :help:

danik.js 01.03.2013 01:49

В свойстве href ссылок хранится полный адрес, а не тот что указан в атрибуте href. Однако я не понимаю почему поиск идет по свойству а не атрибуту. Так или иначе, исправляется "ul li a[href$='"+hash+"']"

Mukhtar 01.03.2013 02:05

Цитата:

Сообщение от danik.js (Сообщение 238083)
В свойстве href ссылок хранится полный адрес, а не тот что указан в атрибуте href. Однако я не понимаю почему поиск идет по свойству а не атрибуту. Так или иначе, исправляется "ul li a[href$='"+hash+"']"

:agree: Видать по этому и не нажимает. А как мне по аттрибуту найти? В принципе я так немного понял, во первых нужно ссылку в ХЭШе привести в порядок. То есть hash.replace("!/","");. Чтобы получить допустим #home вместо #!/home. А вот как по аттрибуту нажатие сделать, вот тут я в тупике.

рони 01.03.2013 02:14

Цитата:

Сообщение от Mukhtar
А вот как по аттрибуту нажатие сделать

jQuery("ul li a[href='"+hash+"']").click()

а просто клик разве неработает

Mukhtar 01.03.2013 02:17

Цитата:

Сообщение от рони (Сообщение 238086)
jQuery("ul li a[href='"+hash+"']").click()

а просто клик разве неработает

Не работает, может срабатывает, но элемент скорее всего не находит. Хотя нет, алертом вывел, находит... Даже не знаю, почему не кликает?

danik.js 01.03.2013 02:22

Я надеюсь click() вызывается уже после того, как обработчик клика навешан?

Mukhtar 01.03.2013 02:30

Цитата:

Сообщение от danik.js (Сообщение 238088)
Я надеюсь click() вызывается уже после того, как обработчик клика навешан?

:yes: Да... Я экспериментировал и ставил и до и после

Deff 01.03.2013 02:32

<script src="http://code.jquery.com/jquery-latest.js"></script>

<style>
 section[id]{
  display:none;
  position:absolute;
 }
</style>
<ul class="nav nav-pills">
  <li  data-section="#home">
    <a href="#home">Продукты</a>
  </li>
  <li  data-section="#about"><a href="#about">О компании</a></li>
  
</ul>
<section id="home">
FIRST PAGE
</section>
<section id="about">
SECOND PAGE
</section>


<script>
	var hash = location.hash
	var menu = $('.nav.nav-pills');
$('li',menu).find('a[href^="#"]').each(function() {
	var S = $(this).attr('href');
	if(S&&hash&&S.indexOf(hash)!=-1){$(hash).addClass("active").fadeIn(500);hash='find';return false;}
});
	if(hash!='find')$("#home").addClass("active").fadeIn(500);

$('a',menu).on("click",function() {
	$("section:visible").removeClass("active").fadeOut(700);
	var id='#'+this.href.split('#')[1];
	$(id).addClass("active").fadeIn(700);

});
</script>


Часовой пояс GMT +3, время: 14:20.