Uncaught TypeError: Cannot read property 'top' of undefined
mari0n
-
mari0n -
mari0n -
Bonjour,
J'utilise le code suivant qui me permet d'ajouter une class à un élément du menu lorsque celui-ci est au niveau de l'écran de l'internaute :
Il fonctionne très bien, mais dans l'inspecteur chrome, j'ai l'erreur suivante :
"Uncaught TypeError: Cannot read property 'top' of undefined"
Savez-vous pourquoi cette erreur, alors que tout fonctionne bien ?
J'utilise le code suivant qui me permet d'ajouter une class à un élément du menu lorsque celui-ci est au niveau de l'écran de l'internaute :
$(document).ready(function () { $(document).on("scroll", onScroll); }); function onScroll(event){ var scrollPos = $(document).scrollTop(); $('#nav-main a').each(function () { var currLink = $(this); var refElement = $(currLink.attr("href")); if (refElement.position().top <= scrollPos +55 && refElement.position().top + refElement.height() > scrollPos +55) { $('#mnav-main ul li a').removeClass("active"); currLink.addClass("active"); } else{ currLink.removeClass("active"); } }); }
Il fonctionne très bien, mais dans l'inspecteur chrome, j'ai l'erreur suivante :
"Uncaught TypeError: Cannot read property 'top' of undefined"
Savez-vous pourquoi cette erreur, alors que tout fonctionne bien ?
A voir également:
- Cannot read properties of undefined traduction
- Error typeerror: cannot read properties of null (reading 'scrollintoview') - Meilleures réponses
- Que veut dire cannot read property of undefined - Meilleures réponses
- Uncaught typeerror: cannot access offset of type string on string - Forum PHP
- Typeerror: can't multiply sequence by non-int of type 'float' - Forum Python
- Uncaught typeerror: cannot read properties of null (reading 'addeventlistener') ✓ - Forum Javascript
- Typeerror: 'int' object is not subscriptable - Forum Python
- Uncaught TypeError: document.getElementsById is not a functi ✓ - Forum Javascript
3 réponses
bonjour.
A mon avis tu doit te tromper, ton code ne fonctionne pas.
A partir de l'erreur que tu as, ce code js plante et ne vas pas plus loin que l'erreur.
cette ligne n'est pas normale pour moi
elle appel un élément qui n'existe pas et donc qui n'as pas de position.
Tu devrais changer ta condition
en
A mon avis tu doit te tromper, ton code ne fonctionne pas.
A partir de l'erreur que tu as, ce code js plante et ne vas pas plus loin que l'erreur.
cette ligne n'est pas normale pour moi
$(currLink.attr("href"));
elle appel un élément qui n'existe pas et donc qui n'as pas de position.
Tu devrais changer ta condition
if (refElement.position().top <= scrollPos +55 && refElement.position().top + refElement.height() > scrollPos +55) {
en
if (currLink.position().top <= scrollPos +55 && currLink.position().top + currLink.height() > scrollPos +55) {
https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js
Sans cela, le code ci-dessus ne fonctionne pas. Sinon il fonctionne bien sur mon site, que ce soit sur Chrome ou sur Safari, par contre dès que je scroll, la quantité d'erreurs augmente, celles affichées sont toute les mêmes : Uncaught TypeError: Cannot read property 'top' of undefined