jQuery для получения данных с URL - PullRequest
3 голосов
/ 05 февраля 2012

Я пытаюсь заставить jQuery взять хэштег из URL и выполнить с ним некоторые функции:

Пример хэштега:

http://www.example.com/Help.asp#contact

Я создал справочный центр.Этот справочный центр скрывает все ответы на странице загрузки, и когда вы нажимаете на вопрос, ответ скользит вниз.Каждый вопрос является его собственным anchor с идентификатором имени.Поэтому, когда вы переходите к http://www.example.com/Help.asp#contact,, документ автоматически прокручивается до <a name="contact">.Мы часто используем их в электронных письмах или как угодно, когда хотим направить пользователя прямо на вопрос, который он задает в Справочном центре.Тем не менее, было бы еще проще использовать, если бы этот anchor срабатывал через секунду после загрузки страницы.Я предполагаю, что мне нужно получить хэштег и получить скрипт jQuery, подобный следующему:

$(document).ready(function(){
$('a[name="~~HASHTAG~~"]').trigger('click').delay(1000);
});

Как я могу получить хэштег из URL?Спасибо за вашу помощь.

Вот мой HTML http://jsfiddle.net/tBLuL/

Ответы [ 4 ]

3 голосов
/ 05 февраля 2012

Вы ищете значение javascript

location.hash

Оно будет содержать часть #Hash URL, в вашем случае

#contact
1 голос
/ 05 февраля 2012

Использование свойства hash объекта window ...

$(document).ready(function(){
    var thehash = window.location.hash; // #contact

    $('a[name="' + thehash.replace('#','') + '"]')
                         .trigger('click')
                         .delay(1000);
});
0 голосов
/ 05 февраля 2012

Проверьте объект window.location.location.hash имеет именно то, что вы ищете, jQuery не требуется.

0 голосов
/ 05 февраля 2012

Попробуйте это.

$('a[name="' + location.hash.replace('#', '') + '"]').click().delay(1000);

Задержка в 1 секунду после щелчка бесполезна.Чего вы пытаетесь достичь с задержкой?

Обновление:

Если вы хотите отложить click, попробуйте это.

$('a[name="' + location.hash.replace('#', '') + '"]').delay(1000).click();
...