Fylling Skrevet 22. juli 2013 Del Skrevet 22. juli 2013 Hei. Eg sitter å pynter på ei nettside nå og skal laste inn fire billeter, kor eg bruker JQuery og etter biletet er lastet inn skal eg fjerne ein "p" tag. Eg prøver å gjer det slik: $('article#tilbud1').css({'Background-image':'url("Bilder/nettsideTilbud.png")'}, bileteFerdigLastet($(this))); function bileteFerdigLastet(a){ a.find('p.lasterArtikkel').remove(); } Grunnen til at eg setter a.find(etc.. er fordi denne delen av koden vil vere lik for kvart bilete, men det fungerer ikkje Nokon ideer? Lenke til kommentar
Toolshed Skrevet 22. juli 2013 Del Skrevet 22. juli 2013 Mulig se mer av koden? Tenkte for meg koden din og har ikke tittet på find() enda men vil regne med den titter i sub-tager av article#tilbud1. Er du sikker denne p tagen er under den? Post gjerne mer kode. Lenke til kommentar
Fylling Skrevet 23. juli 2013 Forfatter Del Skrevet 23. juli 2013 (endret) Referer til html kode: <article style="background-color:#234" id="tilbud1" class="tjenester"> <hgroup><h2>Nettside</h2><h6>Er på jakt etter ei nettside, men aner ikkje kva som ligger bakom eit slikt prosjekt?</h6><span></span></hgroup> <p class="lasterArtikkel" style="margin:20% 0 0 45%;">Artikkel lastes inn...</p> </article> Ignorer stiltaggen for artikkelen, eg bruker farver for å lettere sjå kor blokkene er Endret 23. juli 2013 av Fylling Lenke til kommentar
j-- Skrevet 23. juli 2013 Del Skrevet 23. juli 2013 Uten at jeg har lest med opp på det, ser jeg muligens problem. .css-funksjonen manipulerer kun CSS-regelsettet nettleseren bruker, og hopper videre med en gang det er gjort. Dette skjer da samtidig med at nettleseren starter å laste inn bildet, og nettleseren har ikke bildet på plass i det .css-funksjonen er ferdig med å kjøre. Er også flere syntax-feil med koden din. Dette er nok mer korrekt: $('article#tilbud1').css({'Background-image','url("Bilder/nettsideTilbud.png")'}).bileteFerdigLastet($(this)); Er ikke godt nok kjent med JS til å vite om man kan "chaine" egendefinerte funksjoner på den måten du gjør det nå. Kjapt notat: hgroup blir fjernet fra HTML5 ( http://html5doctor.com/the-hgroup-element/ ) Lenke til kommentar
Toolshed Skrevet 23. juli 2013 Del Skrevet 23. juli 2013 En anna måte å gjøre det på er jo å endre innholdet i artikkel laster istedet for å fjerne den. Evnt rename tagen til "article" også bruke html() i jQuery. (Eller innerHtml om du klarer javascript.) Lenke til kommentar
Fylling Skrevet 23. juli 2013 Forfatter Del Skrevet 23. juli 2013 Uten at jeg har lest med opp på det, ser jeg muligens problem. .css-funksjonen manipulerer kun CSS-regelsettet nettleseren bruker, og hopper videre med en gang det er gjort. Dette skjer da samtidig med at nettleseren starter å laste inn bildet, og nettleseren har ikke bildet på plass i det .css-funksjonen er ferdig med å kjøre. Er også flere syntax-feil med koden din. Dette er nok mer korrekt: $('article#tilbud1').css({'Background-image','url("Bilder/nettsideTilbud.png")'}).bileteFerdigLastet($(this)); Er ikke godt nok kjent med JS til å vite om man kan "chaine" egendefinerte funksjoner på den måten du gjør det nå. Kjapt notat: hgroup blir fjernet fra HTML5 ( http://html5doctor.c...hgroup-element/ ) uhm, nei.. Trur du nettopp lagde fleire syntax feil Lenke til kommentar
Terrasque Skrevet 23. juli 2013 Del Skrevet 23. juli 2013 Problemet her er vel at du bruker css background taggen,.. Den vil calle neste funksjon når css blir satt, ikke når ferdig utført (bilde lastet). vanlige img tagger har en onload event : http://api.jquery.com/load-event/ Du kan trolig få trikset til noe a la det du vil ha via det Lenke til kommentar
Fylling Skrevet 23. juli 2013 Forfatter Del Skrevet 23. juli 2013 Problemet her er vel at du bruker css background taggen,.. Den vil calle neste funksjon når css blir satt, ikke når ferdig utført (bilde lastet). vanlige img tagger har en onload event : http://api.jquery.com/load-event/ Du kan trolig få trikset til noe a la det du vil ha via det Eg vil at det skal skje etter biletet er satt. Fjør gjor eg det slik som fungerer fint: $('article#tilbud1').css({'Background-image':'url("Bilder/nettsideTilbud.png")'}).find('p.lasterArtikkel').remove(); Lenke til kommentar
Terrasque Skrevet 23. juli 2013 Del Skrevet 23. juli 2013 Etter bildet er satt som i background css satt? Isåfall fungerer den koden du nettopp pastet fint. Hvis du vil at det skal skje etter bildet har lastet, så kan du etter det jeg vet ikke gjøre det med css background-image Lenke til kommentar
Fylling Skrevet 23. juli 2013 Forfatter Del Skrevet 23. juli 2013 Etter bildet er satt som i background css satt? Isåfall fungerer den koden du nettopp pastet fint. Hvis du vil at det skal skje etter bildet har lastet, så kan du etter det jeg vet ikke gjøre det med css background-image Eg skreiv at forrige koden fungerer Målet er å sette ein funksjon for siste delen av kvar kode som eg kan bruke om igjen når det trengs. Lenke til kommentar
Terrasque Skrevet 23. juli 2013 Del Skrevet 23. juli 2013 function dostuff(targets) { targets.css({'Background-image':'url("Bilder/nettsideTilbud.png")'}); targets.find('p.lasterArtikkel').remove(); } dostuff($('article#tilbud1')); ? Er enda litt usikker på hva du vil sluttresultatet skal være, og hvorfor du vil ha ting på sånn og sånn måte. http://xkcd.com/763/ ? Lenke til kommentar
Wedvich Skrevet 24. juli 2013 Del Skrevet 24. juli 2013 Finnes ikke noen elegant måte å gjøre det på, men du kan jo ta en workaround og liksom-preloade bildet samtidig som du setter det, da du kan følge med på når innlastingen i et bildeelement er ferdig: var article = $( 'article#tilbud1' ); var url = 'Bilder/nettsideTilbud.png'; var img = $( document.createElement( 'img' ) ); img.on( 'load', function () { article.find( 'p.lasterArtikkel' ).remove(); } ); img.attr( 'src', url ); article.css( 'background-image', 'url(' + url + ')' ); Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå