페이지의 다른 섹션으로 스크롤하면서 naviagtion 클래스를 변경하려고하는데 오류가 발생했습니다. 다음은 현재 코드입니다.내비게이션 변경 페이지에서의 활성 클래스 jQuery로 스크롤
(function($) {
"use strict";
$(document).ready(function() {
$(document).on("scroll", onScroll);
//smoothscroll
$('a[href^="#"]').on('click', function (e) {
e.preventDefault();
$(document).off("scroll");
$('a').each(function() {
$(this).removeClass('active');
})
$(this).addClass('active');
var target = this.hash,
menu = target;
$target = $(target);
$('html, body').stop().animate({
'scrollTop': $target.offset().top+2
}, 500, 'swing', function() {
window.location.hash = target;
$(document).on("scroll", onScroll);
});
});
});
function onScroll(event){
var scrollPos = $(document).scrollTop();
$('.menu li a').each(function() {
var currLink = $(this);
var refElement = $(currLink.attr("href"));
if (refElement.position().top <= scrollPos && refElement.position().top + refElement.height() > scrollPos) {
$('.menu li a').removeClass("active");
currLink.addClass("active");
}
else{
currLink.removeClass("active");
}
});
}
})(jQuery);
WordPress 테마에서 사용하려고합니다. 문제를 일으킬 수있는 코드 레이아웃에 실수가 있습니까?
미리 감사드립니다.
Scott.
어떤 오류가 발생합니까? – Dylon
안녕하세요, 임 점점 : Uncaught ReferenceError : $ target이 정의되지 않았습니다 –
나는 엄격한 모드가 활성화 된 전역 변수로 $ target이 사용되는 것이 문제라고 생각합니다. 제안 된 솔루션을 게시했습니다. 참조 : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode#Converting_mistakes_into_errors – Dylon