Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

[jQuery] zelfde versie meerdere keren aanroepen

Pagina: 1
Acties:

Onderwerpen


  • MoietyMe
  • Registratie: juli 2003
  • Laatst online: 13-09 15:40
Ik ben bezig met een website waarin ik een aantal jQuery plug-ins gebruik. Hiervoor laad ik zelf een jQuery library in.

Nou is het echter zo dat door de manier van werken van de klant ik alleen invloed heb op het content gedeelte.
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!doctype html> 
<html> 
  <head> 
    <title>website</ttle> 
  </head> 
  <body> 
    <div class="invloed"> 
      Alleen hier kan ik code plaatsen. 
      <script src="jquery.js"></script> 
      <script src="plugin.js"></script> 
    </div> 
    <script src="jquery.js"></script> 
  </body> 
</html>

Buiten de div.invloed kan ik dus niks doen. Mijn scripts worden dus ook aangeroepen binnen deze div. Nou gaan om één of andere reden alle jQuery plug-ins op hun plaat. De versies zijn gelijk aan elkaar, dus daar ligt het niet aan. Ik kan niet mijn plugins aanroepen na de laatste aanroep van jquery, want daar kan ik geen code plaatsen. Zelf jQuery niet aanroepen werkt ook niet omdat dan $ nog niet beschikbaar is bij het aanroepen van de plug-ins en andere scripts.

De vraag is dus waarom gaan de scripts op hun plaat ookal word de zelfde versie ingeladen.

  • FotW
  • Registratie: juli 2012
  • Laatst online: 13:34
Omdat je scripts proberen uit te voeren voor jQuery ingeladen is, hence de $ niet beschikbaar

  • MoietyMe
  • Registratie: juli 2003
  • Laatst online: 13-09 15:40
quote:
FotW schreef op vrijdag 18 oktober 2013 @ 12:04:
Omdat je scripts proberen uit te voeren voor jQuery ingeladen is, hence de $ niet beschikbaar
Nee het probleem is dat ik zelf al een jQuery versie inlaad, dan mijn scripts en vervolgens wordt er nog een versie ingeladen. En toch gaat het kappot.

  • KhaZ
  • Registratie: november 2003
  • Laatst online: 13:36

KhaZ

Alfa Romeo

Niet dat ik er verstand van heb maar ik heb het idee dat je beter maar 1 jquery versie kan laten laten, i.p.v. meerdere.

  • MoietyMe
  • Registratie: juli 2003
  • Laatst online: 13-09 15:40
quote:
KhaZ schreef op vrijdag 18 oktober 2013 @ 12:08:
Niet dat ik er verstand van heb maar ik heb het idee dat je beter maar 1 jquery versie kan laten laten, i.p.v. meerdere.
Dat klopt, alleen als ik die van mij niet inlaad dan werken mijn plug-ins ook niet.

  • GlowMouse
  • Registratie: november 2002
  • Niet online

GlowMouse

getweakt...

quote:
Good Fella schreef op vrijdag 18 oktober 2013 @ 12:09:
[...]

Dat klopt, alleen als ik die van mij niet inlaad dan werken mijn plug-ins ook niet.
Je kunt elke 100 ms kijken of jQuery al is ingeladenkijken of de pagina volledig is ingeladen, en pas dan jouw code uitvoeren.

GlowMouse wijzigde deze reactie 18-10-2013 12:11 (7%)

jij ook?


  • CodeCaster
  • Registratie: juni 2003
  • Niet online

CodeCaster

👌👀 good shit ✔💯

Idealiter laad je scripts pas aan het eind van de pagina, maar jquery moet geladen zijn voordat je jouw scripts laadt.

Kun je jouw script-includes echt niet ná de reeds aanwezige jquery-include plaatsen? Kun je anders hun jquery-code (laten) aanpassen naar zoiets?
HTML:
1
2
3
<script>
  window.jQuery || document.write('<script src="js/jquery.min.js"><\/script>')
</script>

As always, we are nailed to a cross of our own construction.


  • MoietyMe
  • Registratie: juli 2003
  • Laatst online: 13-09 15:40
Ik heb contact opgenomen met klant met de vraag of dit toch anders kan. Alvast bedankt voor de suggesties.

  • Bosmonster
  • Registratie: juni 2001
  • Laatst online: 13:29
Probleem nu is waarschijnlijk dat de tweede jquery initialisatie alle events cleared (ook document ready) en daardoor het ook met 2 jquery's niet werkt.

Uiteindelijk moet je zorgen dat de volgorde gaat kloppen van het inladen. Kun je niet iets proberen met requirejs oid?

Anders kun je alsnog proberen de plugins op een later tijdstip te injecten (native document ready of window.load bijvoorbeeld).

Bosmonster wijzigde deze reactie 18-10-2013 14:03 (3%)

Error failed


  • NNF
  • Registratie: november 2003
  • Laatst online: 23-09 14:35
quote:
Bosmonster schreef op vrijdag 18 oktober 2013 @ 14:03:
Probleem nu is waarschijnlijk dat de tweede jquery initialisatie alle events cleared (ook document ready) en daardoor het ook met 2 jquery's niet werkt.
Dat is inderdaad precies wat er gebeurt als je twee keer de jQuery library laadt :) Weet ik helaas uit ervaring.

Je klant moet jQuery gewoon niet helemaal aan het einde van het document pas laden, dat slaat nergens op :P

NNF wijzigde deze reactie 19-10-2013 11:35 (3%)


  • Blues
  • Registratie: februari 2000
  • Laatst online: 17-12-2015

Blues

Blast-off for Kicksville!

Zoals Bosmonster al zei: RequireJS (http://requirejs.org/docs/jquery.html)

You see, your fight for survival starts right now. You don't want to be judged? You won't be. You don't think you're strong enough? You are. You're afraid. Don't be. You have all the weapons you need. Now fight!


  • MoietyMe
  • Registratie: juli 2003
  • Laatst online: 13-09 15:40
Bedankt allemaal. Klant heeft aanpassingen gemaakt voor nu. Volgende project toch maar namespacen dan..

Zal eens kijken naar Require :)

  • BasieP
  • Registratie: oktober 2000
  • Laatst online: 28-06 11:15

BasieP

Canon EOS 30D

Als het nou wel gelukt was. Had je de klant dan een stuk software aangeboden waarin meerdere instanties van dezelfde jQuery geladen worden?

/offtopic:
so much for purrrrfect code.. ;)

BasieP wijzigde deze reactie 21-10-2013 21:59 (14%)

This message was sent on 100% recyclable electrons.


  • MoietyMe
  • Registratie: juli 2003
  • Laatst online: 13-09 15:40
quote:
BasieP schreef op maandag 21 oktober 2013 @ 21:58:
Als het nou wel gelukt was. Had je de klant dan een stuk software aangeboden waarin meerdere instanties van dezelfde jQuery geladen worden?
/offtopic:
so much for purrrrfect code.. ;)
Sommige klanten zijn van een dusdanige grootte dat je daar als klein web-develop bedrijf lastig tegenin kan. Dan zul je toch zelf oplossingen moeten bedenken. Die zullen niet altijd purrfect zijn nee ;)

Voor een volgende keer ga ik me zeker verder verdiepen in Require. Daar is nu alleen geen budget meer voor ;(

Allen bedankt!

  • R4gnax
  • Registratie: maart 2009
  • Laatst online: 20-09 23:45
quote:
Good Fella schreef op maandag 28 oktober 2013 @ 19:38:
Sommige klanten zijn van een dusdanige grootte dat je daar als klein web-develop bedrijf lastig tegenin kan.
Rustig en in duidelijke, begrijpelijke, niet-technische taal de probleemsituatie voorleggen, en met alternatieven komen die toch proberen de business case te vervullen. Als je een klant hebt die niet een complete kruk dan kun je er op die manier meestal nog wel uitkomen is mijn ervaring.

Niet technisch opgeleidde medewerkers van een klant zien gewoon heel vaak niet het complete technisch spectrum aan edge cases, pitfalls en andere problemen. Als professional moet jij daar ook gewoon deels voor waken en die vertaalslag terug maken.

Dat hoeft heus niet aanvallend te zijn. Je kunt het ook stellen als een vraag: "Natuurlijk kunnen we probleem X via methode Y proberen op te lossen. We willen alleen even zeker weten dat jullie ook hebben nagedacht over het belang van casus Z en hoe die mogelijk voor problemen kan zorgen."

(Uiteraard gaat dat wellicht wel wat moeilijker worden als er nog een compleet a-technisch sales persoon tussen zit die enkel geinteresseerd is in zijn bonus scoren voor dit ene project, i.p.v. een langdurige en duurzame klantrelatie op te bouwen. Dat type zal eerder voor de quick-win gaan en jouw project team proberen aan te sturen op het dom opvolgen wat een klant schreeuwt i.p.v. even mee te denken en op de lange termijn gezien iedereen een hoop sores besparen.)

R4gnax wijzigde deze reactie 29-10-2013 00:32 (20%)

Pagina: 1


Apple iPhone XS HTC U12+ dual sim LG W7 Google Pixel 3 XL OnePlus 6 Battlefield V Samsung Galaxy S10 Google Pixel 3

Tweakers vormt samen met Tweakers Elect, Hardware.Info, Autotrack, Nationale Vacaturebank en Intermediair de Persgroep Online Services B.V.
Alle rechten voorbehouden © 1998 - 2018 Hosting door True