Avatar billede lone_a_p Praktikant
09. juli 2011 - 18:37 Der er 15 kommentarer og
1 løsning

Jquery mobile fejler på SmartPhone men virker fint på pc

Kære eksperter,

Jeg er ved at udvikle en mobil-udgave af mit website, og er stødt på følgende problem.

Alt virker på www.madital.dk/m (i al fald i Chrome)

Men når jeg ser nøjagtig samme site og gør de samme ting på min smartphone ... købt til formålet :-) ... så sker der ikke det rigtige.

Vil du teste kan du gå ind på www.madital.dk/m (demo-mulighed for login).
Herefter går jeg ind på fanen "Mad" og indtaster "jordbær" i det øverste søgefelt.
Så langt, så godt.
Herefter sker der en forskel på smartphone og pc.

På pc'en kan jeg klikke på søgeresultaterne og få yderligere valgmulighed listet lige under de enkelte søgeresultater.

Det kan jeg ikke på min smartphone. Her er det tilfældigt hvornår jeg får vist resultater eller ej (oftest dog ingen resultater, men de kommer af og til).


Jeg går ud fra, at det har noget at gøre med jquery mobiles asynkrone tilgang. Jeg har forsøgt at sætte

$(function() {   
    $.ajaxSetup({
      async: false
    });
    //yderligere kode fjernet for overskueligheden ....
}

også i de enkelte $.ajax calls.

Herudover ved jeg ikke helt om jeg skal bruge noget med readystate? Synes at kunne finde meget lidt på nettet - for lidt konkret.

Så jeg håber, der er nogle herinde, der har en mulig løsning og ønsker at hjælpe.

Mvh Lone
Avatar billede lone_a_p Praktikant
09. juli 2011 - 18:44 #1
jeg har i øvrigt en htc wildfire
Avatar billede jakobdo Ekspert
09. juli 2011 - 20:26 #2
Hvad hvis du tester http://jquerymobile.com/demos/1.0b1/ direkte i din mobil?
Virker det så?

Og hvad er det der ikke virker?
Avatar billede lone_a_p Praktikant
09. juli 2011 - 21:10 #3
puha, det går godt nok også noget langsomt :-/

Men jeg får dog vist det rigtige, det gør jeg ik på min egen.

Jeg vil prøve at lave det om, så jeg ikke bruger next() og lignende. Jeg vender lige tilbage, når jeg har forsøgt dette.
Avatar billede jakobdo Ekspert
09. juli 2011 - 21:17 #4
ER det demoen som kører langsomt?
Jeg synes det kører fint (som en hjemmeside nu normalt gør) på min iphone.
Hurtig repsons osv..
Avatar billede lone_a_p Praktikant
10. juli 2011 - 00:12 #5
Tak for svar.

Jeg har fundet en rigtig fin artikel:
http://www.tvidesign.co.uk/blog/improve-your-jquery-25-excellent-tips.aspx

som bestemt har hjulpet en del.

Men ja - det er demoen, som jeg taler om :-)

Har du prøvet på din iPhone at logge ind på demoen, derefter gå ind under "Mad" og søge på "jordbær". Herefter vælger du et af søgeresultaterne. I selve søgeresultatet skulle der gerne komme nogle flere enheder frem når søgelisten åbner - dvs. ikke kun gram, men også "spsk" og "glas". Det er disse jeg har problemer med.
(det er bare i test nu, så det er samme kode på samtlige søgeresultater)

Nogle gange bliver de vist, andre gange står der bare "gram", som er default indtastet. Dvs. de to andre bliver ikke altid tilføjet. Det er et problem.

Især fordi jeg ikke aner hvorfor - så plejer det gerne at dukke op senere alligevel, hvis man ikke får det fixet ;)
Avatar billede lone_a_p Praktikant
10. juli 2011 - 00:14 #6
Jeg har i øvrigt også forsøgt at sætte en delay på, men det virker heller ik.

Tænkte at jquery mobile jo laver en masse når den "toggler" de enkelte listeresultater, og så kunne det være, at jeg først kunne gøre noget herefter.

Jeg hører gerne ethvert forslag til en løsning, da jeg stadig er på bar bund ... dog med andre forbedringer undervejs :)
Avatar billede lone_a_p Praktikant
10. juli 2011 - 00:20 #7
Det er præcis denne kode, jeg har problemer med:

$(".resultSeth3").click(function(event){
    myObj = $(this);
    var i = myObj.attr("name"); //0-9

    str = "<option value='1' selected='1'>Gram</option>";
    str += "<option value='7'>Spsk (7g)</option>";
    str += "<option value='200'>Glas (200g)</option>";
           
    if (str) $('#eatFormSelectUnit'+i, $('.eatForm'+i))
        .empty()
        .append(str); //men denne fungerer bare ikke altid

});
Avatar billede lone_a_p Praktikant
10. juli 2011 - 02:14 #8
ok, det handler vist mere om overhovedet at skrive en option til en select i jquery mobile.

Det er der åbenbart besvær med, og jeg har nu prøvet på alle mulige måder og stadig ikke fundet en løsning.

Men leder stadig...
Avatar billede jakobdo Ekspert
10. juli 2011 - 10:17 #9
Der er ihf. noget du ikke gør rigtigt.
Din hjem knap i toppen er ikke korrekt.
Den skjules halvt af menuen: Mad, Test, Smileys ...
Og dine toggles på Mad -> natmad, AFtenkaffe osv..
Der kommer ikke noget, når man klikker på dem.
Var det planen ?
Avatar billede jakobdo Ekspert
10. juli 2011 - 10:19 #10
En anden god ide, ville være at få din side til at smide valid kode:

http://validator.w3.org/check?uri=http%3A%2F%2Fwww.madital.dk%2Fm&charset=%28detect+automatically%29&doctype=Inline&group=0

Og hvis du kigger på jquerymobile demoen, så kører de html5.
Du kører: XHTML 1.0 Transitional
Prøv at skift over til html5.
Avatar billede lone_a_p Praktikant
10. juli 2011 - 10:40 #11
Tak for dine hurtige svar. Det prøver jeg senere i dag :)
Avatar billede lone_a_p Praktikant
19. juli 2011 - 18:06 #12
Jeg har desværre stadig ingen ændringer.

Tilføjelserne har kun succes nogle gange.
Avatar billede lone_a_p Praktikant
19. juli 2011 - 23:53 #13
Jeg er nu et skridt nærmere.

Lige nu opdateres skærmen godt nok med de rigtige data. Problemet er nu, at det først er når man sætter focus i inputfeltet/eller en button. (dvs. herefter opdateres selecten korrekt)

Det skulle jo gerne ske med det samme, så man ser sine muligheder :)

Jeg har forsøgt at
- tvinge focus i input med det samme
- forsøgt med $("#myid").selectmenu('refresh', true);
- .page()

men intet af ovenstående virker.

Har du noget bud her, eller kræver dette et nyt spørgsmål?
Avatar billede lone_a_p Praktikant
20. juli 2011 - 15:54 #14
Jeg har oprettet nyt spørgsmål, da det har ændret karakter http://www.eksperten.dk/spm/943403

Vil du lægge et svar, så jeg kan give point?

Og tak for hjælpen :)
Avatar billede lone_a_p Praktikant
24. juli 2011 - 15:29 #15
Hej Jakobdo,

Vil du lægge et svar, så jeg kan få lukket? Det var godt nok ikke lige dette spørgsmål, som ledte mig direkte til løsningen, men jeg tror validering af koden var delvist med til det ;)

Tak for denne omgang :)
Avatar billede lone_a_p Praktikant
14. august 2011 - 10:51 #16
Jeg fandt ud af det. Jeg brugte ikke den sidste nye js-kode fra jquery - prøvede en masse også med tidligere modeller, så det rodede noget rundt :)

Så jeg startede fra scratch igen med blank html, og fandt ud af, at det var den nyeste jeg skulle bruge.

Nu virker det perfekt :) Skulle bare lige også finde ud af jquery mobile og dens "rendering" :)

Hvis andre ser dette kan jeg oplyse, at jeg hermed mener .page()
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester