Toon posts:

[JS] Globale variabele aanroepen externe .js

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik probeer een globale variabele die in mijn head gedefinieert staat aan te roepen in een externe .js file. De code in mijn head ziet er als volgt uit:
JavaScript:
1
2
3
4
5
6
7
8
9
<script type="text/javascript" language="javascript" src="js/events.js"></script>
<script type="text/javascript" language="javascript">
<!--
    c_hour = <?=date('H');?>;
    c_day = <?=date('d');?>;
    c_month = <?=date('m');?>;
    c_year = <?=date('y');?>;       
// -->  
</script>

Dit resulteert bijvoorbeeld in:
JavaScript:
1
2
3
4
c_hour = 15;
c_day = 10;
c_month = 12;
c_year = 05;

In mijn externe .js wil ik c_day weer aanroepen met:
JavaScript:
1
2
3
function() {
     new_view += '<select name="day'+ i +'"><option>'+ c_day +'</option></select>';
}


Dit blijkt echter niet te werken. Ik heb al verschillende topics doorgelezen over hoe nou een globale variabele te definieren. Mijn conclusie is dat alles wat je buiten je functie met of zonder 'var' ervoor definieert (wat ik dus ook al geprobeerd heb) wordt gezien als een global. Correct my if i'm wrong, maar wat doe ik dan fout... Ik krijg namelijk een mooie undefined terug.

[ Voor 48% gewijzigd door Verwijderd op 10-12-2005 15:32 ]


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

De volgorde van includen aanpassen? (eerst je interne JS, dan je externe)
Temeer daar:
JavaScript:
1
2
3
function() {
     new_view += '<select name="day'+ i +'"><option>'+ c_day +'</option></select>';
}
natuurlijk meteen uitgevoerd wordt tijdens het parsen - waarom je dat in een anonymous function zet snap ik derhalve ook niet...

Intentionally left blank


Verwijderd

Topicstarter
crisp schreef op zaterdag 10 december 2005 @ 15:54:
[...]waarom je dat in een anonymous function zet snap ik derhalve ook niet...
Maar dat is toch juist het idee van een global?

Die functie ziet er overigens wel anders uit... function(id, ext_ev etc...). Ik heb hem alleen voor het voorbeeld zo neergezet.

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Verwijderd schreef op zaterdag 10 december 2005 @ 16:22:
[...]


Maar dat is toch juist het idee van een global?

Die functie ziet er overigens wel anders uit... function(id, ext_ev etc...). Ik heb hem alleen voor het voorbeeld zo neergezet.
Tsja, als je geen volledig voorbeeld geeft dan kunnen wij natuurlijk enkel maar gissen...

Overigens verdient het aanbeveling globale variabelen ook te declareren mbv het 'var' keyword

Intentionally left blank


  • Guillome
  • Registratie: Januari 2001
  • Niet online

Guillome

test

Blijven variabelen niet binnen een <script> tag??

If then else matters! - I5 12600KF, Asus Tuf GT501, Gigabyte Gaming OC 16G 5080 RTX, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

XLerator schreef op zaterdag 10 december 2005 @ 16:33:
Blijven variabelen niet binnen een <script> tag??
nee

[ Voor 3% gewijzigd door crisp op 10-12-2005 16:34 ]

Intentionally left blank


  • Guillome
  • Registratie: Januari 2001
  • Niet online

Guillome

test

Heb je dát berichtje nog moeten aanpassen? :P :P :P Ok wist ik niet :)

If then else matters! - I5 12600KF, Asus Tuf GT501, Gigabyte Gaming OC 16G 5080 RTX, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


Verwijderd

Topicstarter
Om het topic dan maar uit te breiden met mijn 'oplossing' (het werk nu in ieder geval):

Script met globals boven de include geplaatst, var ervoor gezet en ook nog tussen quotes.

JavaScript:
1
2
3
4
5
6
7
8
9
<script type="text/javascript" language="javascript">
<!--
    var c_hour = '<?=date('H');?>';
    var c_day = '<?=date('d');?>';
    var c_month = '<?=date('m');?>';
    var c_year = '<?=date('y');?>';     
// -->  
</script>   
<script type="text/javascript" language="javascript" src="js/events.js"></script>   
Pagina: 1