Как реализовать отображение запрошенного именованного якоря с помощью JQuery / JavaScript / CSS - PullRequest
2 голосов
/ 19 мая 2009

На странице есть контейнерный элемент div, который содержит несколько элементов содержимого. У каждого содержимого div есть якорь. Только один из div-ов контента отображается одновременно:

Пример:

<style>
  .lurk { display: none; }
</style>
<div class="container">
  <div id="c1">
    <a name="#c1">One</a> is the loneliest number.
  </div>
  <div id="c2" class="lurk">
    <a name="#c2">Two</a> is company.
  </div>
  <div id="c3" class="lurk">
    <a name="#c3">Three</a> is a crowd.
  </div>
</div>
<script>
// ... something that adds and removes the lurk class from the content divs
</script>

Желаемое поведение состоит в том, что если кто-то запрашивает страницу, используя действительный именованный якорь в URL-адресе, JavaScript / JQuery увидит его и соответствующим образом установит различные свойства отображения так, чтобы содержимое, соответствующее названному якорю, было видимым.

  1. Доступен ли запрашивающий URL для JQuery?
  2. Проверяет по имени якоря в URL обычно делаются в начале $ (документ) .ready? ()
  3. Является это трудно получить право в кроссбраузерный способ?
  4. Существует ли библиотечная процедура для извлечения якоря из URL-адреса, или каждый бросает свое собственное регулярное выражение?

1 Ответ

2 голосов
/ 19 мая 2009

Вы можете использовать location.hash для извлечения якоря из URL. Это будет работать во всех браузерах и будет работать в $(document).ready.

Например:

$("div.container > div").removeClass("lurk");
if (location.hash)
    $("#" + location.hash).addClass("lurk");
...