Страницы

Поиск по вопросам

среда, 22 января 2020 г.

Ошибка: TypeError: undefined is not an object

#javascript


На сайте появляется ошибка: 


  TypeError: undefined is not an object (evaluating '$('.entry-content').offset().top')


Вот код

 jQuery(document).ready(function($) {
console.log("Start");
(function($) {
    "use strict";
    var dh;
    var faded = false;
    dh = $('.entry-content').offset().top;
    if ($(window).width() > 1000 && $('body').hasClass('single'))
        $(window).scroll(function() {
            var offset = $(window).scrollTop();
            if (offset > 270 && faded != true) {
                setTimeout(function() {
                    $('.adslot_1 center').fadeOut(400, function() {
                        $('.adslot_1 center').css({
                            'position': 'static'
                        }).fadeIn();
                    });
                }, 300)
                faded = true;
                return;
            }
        })


Класс .entry-content присутствует только на странице новости, на главной его нет.
Видимо по этому и возникает ошибка. 
Данный скрипт открепляет прилепающую рекламу при скроле.
Как можно устранить эти проблему, чтобы на главной странице не выдавалась это ошибка?
    


Ответы

Ответ 1



Причина ошибки в том, что если на странице нет элемента с классом .entry-content, то $('.entry-content').offset() будет undefined и получится dh = undefined.top; А undefined - это не объект и у него нет свойства top это и написано в теле ошибки. Поменяй dh = $('.entry-content').offset().top; На dh = $('.entry-content').offset() && $('.entry-content').offset().top;

Комментариев нет:

Отправить комментарий