'if { ' disables jquery op mobiel maar waarom??

Moderators: NadjaNadja, Essie73, Muiz, Polly, Telpeva, ynskek

Toevoegen aan eigen berichten
 
 
highwaykind

Berichten: 4180
Geregistreerd: 21-03-02
Woonplaats: Drenthe

'if { ' disables jquery op mobiel maar waarom??

Link naar dit bericht Geplaatst door de TopicStarter : 04-01-14 12:38

test pagina: http://corienbennink.nl/en/test2.html

Mijn site roept een aantal jquery scripts op:

Code
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript" src="scripts/jquery.prettyPhoto.js"></script>
<script type="text/javascript" src="scripts/jquery.quicksand.js"></script>
<script type="text/javascript" src="scripts/jquery.easing.1.3.js"></script>
<script type="text/javascript" src="scripts/galleryscript.js"></script>


Het prettyPhoto script wil ik op kleine schermen niet oproepen (pop up kleiner dan foto op pagina en onnodig), dus ik heb het volgende gedaan:

Code

if ( (window.innerWidth || document.documentElement.clientWidth)  > 500 ){
   
Hier staat het originele Pretty Photo js deel

  }
else {
hier staat wat hij bij kleine schermen moet doen
   }
   


Het probleem is dat, zodra ik de if erom heen zet, op mobiel ALLE jquery uitgezet wordt - het hele menu werkt dan niet meer (accordeon submenu dat uit moet schuiven), en de quicksand sorteert de fotogalerij niet meer.

Ik heb in het prettyphoto script al een debug
Code
alert( "Hello" );

op verschillende plaatsen gezet om te kijken of er misschien een fout in het script zat (ik heb flink lopen hakken en 'onnodige' code weggehaald, en wat dingetjes aangepast zodat hij deed wat ik wou), maar de alert komt waar hij ook staat ( binnen de if, aan het begin of eind of in het midden) netjes naar boven.
En als de alert in de else staat komt hij netjes niet naar boven op computer scherm.

Dreamweaver klaagt ook niet over errors.

Heeft iemand enig idee hoe dit kan?? En hoe ik dit op kan lossen?

Was namelijk van plan om mobiel menu mbv jquery een stuk in te korten.
Heb nu tijdelijk wat submenu's op display:none staan om het in te korten, maar kan netter opgelost.

Shadow0

Berichten: 45044
Geregistreerd: 04-06-04
Woonplaats: Utrecht

Re: 'if { ' disables jquery op mobiel maar waarom??

Link naar dit bericht Geplaatst: 04-01-14 13:18

Het is mij niet meteen duidelijk. Zegt de developers console in firefox of chrome iets over foutmeldingen?

Overigens wel een opmerking: de expressie zoals jij 'm schrijft doet niet wat je wilt (namelijk kijken of een van beide breedtes groter is dan 500.)

Wat je zou willen checken is
Code
if( (window.innerWidth > 500) || (document.documentElement.clientWidth > 500) ){


Ik weet niet of dat verklaart waarom jquery helemaal stuk gaat, maar ik weet wel dat de expressie zoals jij 'm hebt altijd false is, omdat je eerst een boolean berekent en die daarna pas met > 500 gaat vergelijken.

Mocht je geinteresseerd zijn in de hele technische verklaring, laat maar weten

highwaykind

Berichten: 4180
Geregistreerd: 21-03-02
Woonplaats: Drenthe

Link naar dit bericht Geplaatst door de TopicStarter : 04-01-14 14:47

Dankje! Ik zie nu waarom hij zo moet, met de > 500 in beide statements - alleen breekt dan de hele jquery, ook op computerscherm.
Conclusie: het probleem zit 'm in die regel :D

Ik had het zo uit een stackoverflow post geplukt trouwens - daar deze vraag ook gesteld maar geen werkend antwoord, alleen dat ik moest debuggen.

De Chrome Developers console klaagt over jquery API 1.7.1 - event.returnValue is deprecated - maar dit is zo te zien een warning en geen error (en met jquery API 2.0.0 werken de prettyphoto gallery lightbox EN de quicksand niet, menu accordeon wel..???)


Met
Code
if( $(window).width() > 500 )

of
Code
if( $(screen).availwidth  > 500 )

doet mobiel het ook niet, computer met beide wel.


Mijn div #leftside is op computer scherm 28% en op mobiel 100%, maar ik lijk niet op procenten te kunnen 'iffen' in jquery?
Zou
Code
$('body').width()
of zo kunnen proberen? Wat is handig?