Используйте привязку для отображения отделения

Я использую jQuery и потребность выполнить пару вещей.

1) Когда кто-то нажимает на ссылку (или в моем случае, отделении) для отображения другого отделения, я хотел бы добавить привязку к URL.

Так, если кто-то нажимает на ссылку "Live", 'живое' отделение скатывается, и мы добавляем #live к URL.

2) Если кто-то посещает ту страницу и сохраняет #live привязку в конце URL, то 'живое' отделение должно быть видимо сразу же.

Я знаю, как обработать базовую деталь slideDown (), если кто-то нажимает отделение. Я не знаю, как добавить хэш-тег или сделать его так, чтобы, когда страница загружается, что хэш-тег проверяется и отображает соответствующее отделение.

Любая справка, понимая это ценилась бы.Заранее спасибо.

5
задан Andelas 17 May 2010 в 11:33
поделиться

2 ответа

Добавить хэш к URL так же просто, как манипулировать location.hash , например:

$("a.live").click(function() {
    window.location.hash = 'live'; // not needed if the href is '#live'
});

Вы можете легко проверить его присутствие и действовать соответственно в зависимости от его значения при загрузке страницы, например :

$(document).ready(function() {
    var hashVal = window.location.hash.split("#")[1];
    if(hashVal == 'live') {
        $("#live").show();
    }
});
10
ответ дан 18 December 2019 в 11:54
поделиться

Если у вас была такая разметка:

<a href="#div5" class="toggler">Toggle Div 5</a>
<div id="div5">Content for Div 5</div>

Вы можете сделать это в jQuery:

$("a.toggler").click(function() {
  $(this.hash).slideToggle();
});

Или используйте rel или что-нибудь с div, на который вы нажимаете, например:

<div rel="#div5" class="toggler">Toggle Div 5</a>
<div id="div5">Content for Div 5</div>

И настройте свой jQuery на это:

$("div.toggler").click(function() {
  var hash = $(this).attr("rel");
  $(hash).slideToggle();
  window.location.hash = hash;
});

Я бы рекомендовал использовать display: block; на якоре, чтобы делать то, что вы хотите, и использовать поведение браузера по умолчанию здесь, он заботится о хэше при щелчке.

Независимо от того, какой подход описан выше, вы можете отобразить его при загрузке страницы следующим образом:

$(function() {
  if(location.hash != "") {
    $(location.hash + ":hidden").slideDown();
  }
});
5
ответ дан 18 December 2019 в 11:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: