TypeError: $(...).offset(...) n'est pas défini
J'obtiens cette erreur
TypeError: $(...).offset(...) n'est pas défini
avec la flèche pointant vers le $.
J'ai regardé les questions qui arriverait quand j'ai tapé cette erreur dans le titre, mais je n'ai pas de solution.
Voici mon jquery
$(document).ready(function () {
if(window.location.href.indexOf("#") > -1)
{
var pieces = window.location.href.split(/[\s_]+/);
var section = pieces[pieces.length-1];
var element_to_scroll_to = $('#' + section);
var navbar_height = parseInt($('.navbar').css('height').replace('px', ''));
animate_scroll(element_to_scroll_to, navbar_height, 25);
}
});
function animate_scroll (element, variable, offset) {
$('html, body').stop().animate({
scrollTop: $(element).offset().top - variable - offset
}, 600);
}
et c'est l'ordre de mes fichiers js sont
{{ HTML::script('js/jquery-1.10.2.js') }}
{{ HTML::script('js/jquery-ui.js') }}
{{ HTML::script('js/bootstrap.min.js') }}
{{ HTML::script('js/wow.min.js') }}
{{ HTML::script('js/jquery.superslides.min.js') }}
{{ HTML::script('js/slick.min.js') }}
{{ HTML::script('js/modernizr.custom.js') }}
{{ HTML::script('js/classie.js') }}
{{ HTML::script('js/elastic_grid.min.js') }}
{{ HTML::script('js/webkrunch_portfolio.js') }}
{{ HTML::script('js/main.js') }}
- Il ne sait pas ce que
$(element)
est. Vous n'avez jamais défini. Essayez d'utiliser seulementelement
. Donc, fondamentalement,scrollTop: element.offset().top - variable - offset
- Les Chances sont $(element) n'existe pas dans les DOM. Essayez de vérifier $(element).d'abord la longueur.
- ne pourrait-il pas tout scrollTop chose être accompagnée d'une fonction {}?
- tout d'abord, apprendre à utiliser la console dans le Chrome Developer Tools... avec un simple
console.log(element, $(element))
à l'intérieur de votreanimate_scroll()
fonction, vous seriez en mesure de débogage vous-même
Vous devez vous connecter pour publier un commentaire.
Donc, son tout à fait facile à briser ce qui se passe ici.
Vous êtes en utilisant que la fonction appelée
animate_scroll
et d'appeler le paramètreelement
commeelement_to_scroll_to
.Avec cela à l'esprit,
element_to_scroll_to
est déjà l'appel dejQuery
via:Donc quand
animate_scroll()
est appelée, ses de voir cette:Vous devriez être en mesure de simplement appeler
element
au lieu de redéfinirjQuery
de nouveau, comme suit:EDIT:
Donc, si vous obtenez toujours une erreur, le problème se situe plus en arrière. Voici les étapes que je prendrais pour identifier le problème.
}
De test ci-dessus, j'irait simple console de tests, tels que:
afficher la console après l'ajout de personnes à la fin de votre
if
déclaration et il convient de clarifier davantage la section qui n'est pas défini.TypeError: element.offset(...) is undefined scrollTop: element.offset().top - variable - offset
Je pense que vous devriez faire un test à l'élément de défilement.
Votre code de devenir comme
JS: