Можно ли отключить только прокрутку якоря - PullRequest
0 голосов
/ 04 июня 2019

У меня фактически есть список элементов, которые открывают каждое другое меню, благодаря href (например, #mat отображает меню)

  <div class ="row  d-none d-lg-block classer no-gutters ">
                <h4>Order by
<a class = "navigation" href="#mat" id="navMat"  >localisation</a> /  
<a class = "navigation" href="#new" id="navNew"  >new</a>

и этому jquery, чтобы подчеркнуть текущий активныйitem (ex: localization)

    jQuery( document ).ready(function() {
        jQuery('.navigation').on('click', function(e){
            jQuery('.navigation').removeClass('navigationU');
            this.className = 'navigationU navigation';
        })
    });

Проблема в том, что я хотел бы, чтобы этот href подчеркивал текущий активный элемент, открывал меню, но он прокручивался до него, и я не хочу его.

Я уже пробовал e.preventDefault();, но я отключаю все: прокрутку, но также подчеркивание и отображение меню.

У вас есть идеи?Спасибо

1 Ответ

1 голос
/ 04 июня 2019

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

$(document).on('click', '[href^="#"]', function(e) {
   location.hash = e.target.hash;
   e.preventDefault();
});

отключит все ссылки, начинающиеся с #, и обновит хэш в адресной строке.

...