Почему JavaScript работает в jsfiddler а на сайте нет?

  • Вопрос задан
  • 323 просмотра
Решения вопроса 1
У вас на сайте следующий код
$('a[href*=#]:not([href=#])').click(function() {
		if (location.pathname.replace(/^\//, '') === this.pathname.replace(/^\//, '') && location.hostname === this.hostname) {

			var target = $(this.hash);
			target = target.length ? target : $('[name=' + this.hash.slice(1) + ']');
			if (target.length) {
				$('html,body').animate({
					scrollTop: target.offset().top
				}, 1000);
				return false;
			}
		}
	});

Вы знаете, что делает return false?
Это как сразу вызвать preventDefault и stopPropagation.
К сожалению, но до вашего события ничего не всплывает.
Пожалуйста, нерабочий пример jsfiddle
И рабочий пример jsfiddle
Попробуйте поменять код выше на
$('a[href*=#]:not([href=#])').click(function(e) {
		if (location.pathname.replace(/^\//, '') === this.pathname.replace(/^\//, '') && location.hostname === this.hostname) {

			var target = $(this.hash);
			target = target.length ? target : $('[name=' + this.hash.slice(1) + ']');
			if (target.length) {
				$('html,body').animate({
					scrollTop: target.offset().top
				}, 1000);
				e.preventDefault();
			}
		}
	});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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