Пустой хеш URL вызывает переход страницы на события js

У меня есть галерея фотографий со следующей и предыдущей кнопкой. Если один из моих методов javascript по той или иной причине не работает при нажатии одной из кнопок, это добавит хэш к URL-адресу, например, www.google.com# . Я знаю, что хэшу может быть присвоен идентификатор div для перехода на эту часть страницы, но когда он пуст, он несколько раз перемещается по моей странице, и я не уверен, на что он нацелен. Я думал о попытке удалить хеш из URL, но тогда я должен был убедиться в этом при каждом действии, и это кажется плохой практикой. Я бы предпочел, чтобы хэш просто не имел значения для действий на странице.

3 ответа

Решение

Не использовать href="#"Неверно.

Вместо этого используйте href="javascript:;" или его вариант (лично я использую javascript:void(null);)
Это прямо говорит о том, что ссылка не идет в другое место, но обрабатывается JavaScript.

Я думаю, кнопка "Далее и предыдущий" имеет <a href="#" ...</a> как разметка. В этом случае вы можете добавить прослушиватель событий к этим ссылкам с помощью jquery.

$('#prev, #next').on({
    'click': function(e) {
         e.preventDefault();
     }
})

и не меняйте местоположение с помощью браузера. Или в чистом JavaScript:

document.querySelectorAll('#prev, #next').addEventListener('click', function(e) {
    e.preventDefault();
},false)
//Note: this code is not cross-browser

Не используйте тег привязки, если вы не хотите выполнять функцию навигации. использование button

Другие вопросы по тегам