Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  4 875
Hei

Jeg er veldig ny i jquery verden, dvs. kan egentlig ingenting annet enn at jeg har brukt ferdige koder funnet på nett, dette har hittil fungert veldig bra inntil nå.

Jeg lager en webside som jeg ved hjelp av jquery får smooth scroll på sections når jeg trykker på nav menyen. (eks. Booking, om oss osv) Problemet mitt er at i denne menyen vil jeg også ha en link til en ny underside, (eks se vår meny) men når jeg har laget denne fungerer ikke linken. I inspector får jeg feilmelding: Uncaught TypeError: Cannot read property 'top' of undefined, på 4 punkter.

går jeg til den linjen det er feil er det på denne som er merket rød:

function smoothScroll(target) {
$('body,html').animate(
[COLOR="Red"]{'scrollTop':target.offset().top},
600[/COLOR]
);
}

Det er også feil på denne:


//smooth scroll to the section
navigationItems.on('click', function(event){
event.preventDefault();
[COLOR="red"]smoothScroll($(this.hash));[/COLOR]
});



De to andre feilene er på disse, dette:

jQuery.event.dispatch @ jquery-2.1.1.js:4409:

ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler )
[COLOR="red"].apply( matched.elem, args );[/COLOR]



jQuery.event.add.elemData.handle @ jquery-2.1.1.js:4095:

if ( !(eventHandle = elemData.handle) ) {
eventHandle = elemData.handle = function( e ) {
// Discard the second event of a jQuery.event.trigger() and
// when an event is called after a page has unloaded
return typeof jQuery !== strundefined && jQuery.event.triggered !== e.type ?
[COLOR="red"]jQuery.event.dispatch.apply( elem, arguments ) : undefined;[/COLOR]
};
}




Det eneste som får linken (se vår meny) til å fungere er hvis jeg høyreklikker og "åpne link i ny fane".
Er det noen kloke hoder der ute som i det hele tatt skjønte noe av det jeg prøvde å forklare?
Det står jo temmelig svart på hvitt da. (selv om det er litt kryptisk å lese js-feilmeldinger).
Uncaught TypeError: Cannot read property 'top' of undefined.
Det betyr at det elementet du prøver å lese "top" fra er undefined. dvs at det ikke finnes. Så, her er target ikke-eksisterende. Hvordan kaller du funksjonen her? Er det en onclick på elementet ditt feks?


Og så vil jeg si at å copy/paste jQuery-kode er temmelig stress om du har null erfaring med koding. Det er temmelig merkelig syntax til tider og funksjoner som kan settes på andre funksjoner og så ender man opp med helt ville greier.
Jeg skjønner at den sier det ikke finnes, men det er det jeg ikke helt forstår. Slik er det satt opp i første section:

<section id="section1" class="cd-section1">

<nav class="nav-collapse">
<ul>
<li class="menu-item"> <a href="meny.htm">MENY</a></li>
<li class="menu-item"><a href="#section3" data-number="3">BOOKING</a></li>
<li class="menu-item"><a href="#section6" data-number="6">OM</a></li>
</ul>
</nav>


</section>



Når det gjelder bruken av jQuery så er det slik at jeg har brukt en mal, som jeg bygger siden ut i fra. Men jeg skjønner jo at det ikke er helt riktgi og gjør det vanskeligere for meg selv, men da lærer jeg samtidig.

Siden jeg bygger opp nå er ut ifra fra denne: http://stanhub.com/tutorials/sticky-navigation/
Er «menu-item»-klassene forbundet med jQuery-en som utføres? Funker det i så fall om du fjerner klassen «menu-item» fra det første menypunktet (som jeg antar er det som ikke funker)?
Deer lå problemet ja. Jeg burde jo sette dette før.. løsningen ligger som regel rett foran øyene, men lett å se seg blind noen ganger.

Det var "nav-collapse" som var forbundet med jQueryen, byttet det til menu-item. Takk for hjelpen!