@seregindev

Как достать hash из ссылки?

Добрый вечер!
Такая ситуация, у меня имеются навигационное меню, ссылки этого меню имеют следующий вид
"ссылка на homepage/#якорь"

И мне нужно достать из этих ссылок якорь при помощи jquery

Делается это для того, чтобы при скролинге помечать активный пункт меню
С ссылками ничего не работает..
И не знаю совсем как это сделать..

Код который работает только с якорями
$(document).ready(function () {
  $('.header-site').on('click', 'a[href*="#"]', function(event){
      event.preventDefault();
      var target_offset = $(this.hash).offset() ? $(this.hash).offset().top : 0;
      var customoffset = 106;
      $('html, body').animate({scrollTop:target_offset - customoffset}, 400);
      $("a.active").removeClass("active");
      $(this).addClass("active");
      overActive();
      })
  $(document).on("scroll", onScroll);
})


function onScroll(event){
    var scrollPos = $(document).scrollTop();
    $('.nav-horizontal .menu a').each(function () {
        var currLink = $(this);
        var refElement = $(currLink.attr("href"));
        if (refElement.position().top  <= scrollPos && refElement.position().top + refElement.height() > scrollPos) {
            $('.nav-horizontal .menu a.active').removeClass("active");
            currLink.addClass("active");
            overActive();
        }
        else{
            currLink.removeClass("active");
            overActive();
        }
    });
}
  • Вопрос задан
  • 1414 просмотров
Решения вопроса 1
Stalker_RED
@Stalker_RED
Достаточно this.hash у любой ссылки (<a>).
Насколько я помню, в jQuery нет особых методов для хеша.

$('nav').on('mouseover', 'a', function(){
  console.log(this.hash)
})


https://jsfiddle.net/f9cq0Lgj/
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы