@WildKayote

Проверка href jquery?

На главной странице есть 3 блока с id, в хедере есть небольшая навигация по этой странице с плавным скроллом.
На внутренних страницах эти блоки отсутствуют, но элементы навигации остаются. Также есть отдельные страницы, предназначенные для этих блоков.
Как сделать проверку на href, и если блока с таким id не существует - перекидывать на отдельные страницы?
Есть мысль сделать как-то так:
$('.links__item').click(function (e) {
		event.preventDefault();
		var hrefItem = $(this).attr('href'),
			top = $(hrefItem).offset().top,
			urlOne= "example.ru/item-1/",
			urlTwo = "example.ru/item-2/",
			ulrThree = "example.ru/item-3/";

		if (hrefItem.length > 1){
			$('body,html').animate({scrollTop: top - 150}, 1500)
		} else {
			...
		}
		
	});

Но, думаю, есть вариант получше. Что бы не создавать 3 переменных и не добавлять 3 доп. класса для ссылок, а брать href и привязывать к url. Можно ли так сделать? Спасибо.
  • Вопрос задан
  • 447 просмотров
Решения вопроса 1
fnnzzz
@fnnzzz
front-end dev
var selector = location.hash;

var hashMap = {
	"#urlOne": "example.ru/item-1/"
}

if( !$(selector).length ) {
	location.href = selector(hashMap[selector])
} else {
	$('body,html').animateTo(selector)
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы