login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[ZEND] headscripts (Opgelost)

Offline finduilas - 04/12/2014 21:11
Avatar van finduilasPHP gevorderde Hallo

Momenteel begint het al iets vlotter te gaan om te werken met zend. Echter stuit ik op een probleem bij het inladen van scripts. Als ik kijk in mijn broncode via FireBug wordt de JS wel degelijk ingeladen, maar toch krijg ik het niet voor elkaar om een in de document ready de code uit te voeren die verwijst naar de ingeladen bestanden.

  1. <?php echo $this->headScript()
  2. ->prependFile($this->basePath() . '/js/jquery.min.js')
  3. ->prependFile($this->basePath() . '/js/javascript.js')
  4. ; ?>


En dit terwijl de "gewone" manier wel lukt:
  1. <script type="text/javascript" src="../js/jquery.min.js"></script>
  2. <script type="text/javascript" src="../js/javascript.js"></script>


Er lijkt een vertraging te zitten op het inladen van de scripts via ZEND.Ook al staat jQuery eerst, en daarna pas het javascript bestand, het wordt niet of half ingeladen.

Met half bedoel ik:
  1. <script type="text/javascript">
  2. $(document).ready(function(){
  3. console.log("TEST");
  4. });

Dit wordt wel uitgevoerd.

Maar het volgende dan weer niet, omdat in het javascript.js bestand jQuery nog niet gekend is..
  1. $(document).ready(function(){
  2. $('.gallery').makeGallery({ });
  3. });


Kan iemand me verduidelijken waarom dit komt? Laad ZEND via headscripts dit in op een speciale manier?

2 antwoorden

Gesponsorde links
Offline Thomas - 04/12/2014 21:40
Avatar van Thomas Moderator Het lijkt mij dat als je een bestand "prepend" je het ergens voor plaatst.
Als je de broncode van je uiteindelijke pagina bekijkt wordt javascript.js mogelijk eerder ingeladen dan jquery.min.js?

Mogelijke oplossingen:
- draai de volgorde om?
- zorgt dat je als laatste je jquery-bestand prepend?
- gebruik append, zo die er is? dan is de volgorde ook "natuurlijker"?
- als je jQuery altijd gebruikt, hardcode het in het maintemplate, als zoiets kan en wenselijk is (en niet op een andere manier op te lossen valt)
Bedankt door: finduilas, Abbas
Offline finduilas - 05/12/2014 10:30 (laatste wijziging 05/12/2014 14:45)
Avatar van finduilas PHP gevorderde Hmmz, klinkt logisch. Deze middag eens uitproberen.

Zend heeft enkele manieren om ze in te laden.. Om het wat gemakkelijk te maken zeker ;). Hieronder voor degene die even slim zijn als ik ;).
  1. // adding scripts
  2. $this->headScript()->appendFile('/js/prototype.js')
  3. ->appendScript($onloadScript);
  4.  
  5.  
  6. // Putting scripts in order
  7.  
  8. // place at a particular offset to ensure loaded last
  9. $this->headScript()->offsetSetFile(100, '/js/myfuncs.js');
  10.  
  11. // use scriptaculous effects (append uses next index, 101)
  12. $this->headScript()->appendFile('/js/scriptaculous.js');
  13.  
  14. // but always have base prototype script load first:
  15. $this->headScript()->prependFile('/js/prototype.js');
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.221s