Uncaught TypeError: Cannot read property 'top' of undefined. Как исправить
Всем привет. Подскажите, пожалуйста, есть JavaScript-кoд.
$("[data-scroll]").on("click", function(Event) {
Event.preventDefault();
let ElementId = $(this).data('scroll');
let elementOffset = $(ElementId).offset().top;
console.log(elementOffset);
});
И в ней выдаёт ошибку: Uncaught TypeError: Cannot read property 'top' of undefined. Как ёё исправить?
Ответы (1 шт):
Автор решения: HamSter
→ Ссылка
Вы пытаетесь определить положение не самого элемента, а его атрибута data.
Для того, чтобы определить положение самого элемента стоит задать $(this).offset().top;, где $(this) - то на что кликнули.
$("[data-scroll]").on("click", function(Event) {
event.preventDefault();
let ElementId = $(this).data('scroll');
let elementOffset = $(this).offset().top;
console.log(elementOffset);
});
<script src="https://code.jquery.com/jquery-3.0.0.js"></script>
<a href="#" data-scroll="scroll">
data-scroll
</a>