web-dev-qa-db-fra.com

TypeError jQuery offset (). Top n'est pas défini

Le débogueur Firefox affiche une TypeError pour une fonction jQuery visant à coller une barre de navigation en haut de la page lorsqu'un utilisateur fait défiler et met à jour la classe en même temps.

La fonction est ci-dessous.

$(window).scroll(function() {
    if ($(".navbar").offset().top>30) {
        $(".navbar-fixed-top").addClass("sticky");
    }
    else {
        $(".navbar-fixed-top").removeClass("sticky");
    }
});

L'erreur résultante est la suivante.

Horodatage: 31/01/2014 10:01:04

Erreur: TypeError: $(...).offset(...) n'est pas défini

J'ai regardé environ SO pour un exemple similaire mais je ne peux pas traduire les résultats en correctif. Toute aide serait grandement appréciée.

20
K7Buoy

C'est parce que votre $ (". Navbar") est introuvable. Vérifiez si l'élément existe avant d'obtenir le décalage.

if ($(".navbar").length) {...}
32
user3709748