Kezdőoldal » Számítástechnika » Weblapkészítés » Egy external javascript...

Egy external javascript fájlhoz csak egy parancsot lehet hozzárendelni?

Figyelt kérdés

Most kezdtem el tanulni a javascriptet és kreáltam egy ilyet:


HTML

<h2>External JavaScript</h2>


<p id="demo">A Paragraph.</p>


<button type="button" onclick="myFunction()">Try it</button>


<p>(myFunction is stored in an external file called "myScript.js")</p>



<h2>External JavaScript</h2>


<p id="hello">A Paragraph.</p>


<button type="button" onclick="myFunction()">Try it</button>


<p>(myFunction is stored in an external file called "myScript.js")</p>


JAVSCRIPT

function myFunction() {

document.getElementById("demo").innerHTML = "Paragraph changed.";

}



function myFunction() {

document.getElementById("hello").innerHTML = "Paragraph also changed.";

}


Bármelyik "try it" gombra kattintok, mindig a második <p> elem változik meg attól függetlenül, hogy különböző ID-t használtam a js file-ban. Mi lehet a gond?



2018. aug. 9. 16:32
1 2
 1/11 anonim ***** válasza:
100%

Nem vagyok egy óriási JS-guru, de biztos, hogy ilyen formán működik a függvény-felüldefiniálás?

Konkrétan kétszer egymás után ugyanazt a függvényt definiáltad, amihez hasonló mondjuk C-ben vagy Pascalban le sem fut, mert fordítási hibát okoz. Örülhetsz, hogy a JS egyáltalán ímmel-ámmal, de lefut.

Létezik hasonló dolog objektum-orientált nyelvekben, a polimorfizmus, amikor egy függvényt több módon is paraméterezhetsz, de ez még annak sem megy el, hiszen mindkét függvénynek ugyanaz a paraméterlistája (mindkettőnek üres). Honnan tudná a fordító, hogy melyiknek kell lefutni?

2018. aug. 9. 16:52
Hasznos számodra ez a válasz?
 2/11 anonim ***** válasza:

Hagyd a dom-ot, kezd altalanos programozassal

[link]

2018. aug. 9. 17:12
Hasznos számodra ez a válasz?
 3/11 anonim ***** válasza:

JavaScriptben nincsenek parancsok.

Ettől a kódtól meg nem tudom mit vársz, a függvény második definíciója simán felülcsapja az elsőt.

2018. aug. 9. 17:14
Hasznos számodra ez a válasz?
 4/11 anonim ***** válasza:

Az a gond, hogy a változók és a példában is szereplő változók deklarálásákor "emelésre" (hoisting) kerülnek, így az azonos névvel ellátott változók és függvények újradefiniálódnak.


Én a helyedben kiszedném a Javascript-eseményeket a HTML-kódból, belerakva a Javascript kódba - példa:

[link]

2018. aug. 9. 18:44
Hasznos számodra ez a válasz?
 5/11 A kérdező kommentje:
Koszonom a valaszokat. Ahogy irtam abszolut uj a javascript nekem es az altalatok irt w3school oldalon levo tutorialt csinalom. Ahogy csinalom uj es uj kerdesek merulnek fel bennem amikre lehet kesobb valaszt ad a tutorial, de lehet nem. Vicces amint kitettem a kerdesemet rogton sikerult megcsinalnom ugy, hogy a ket gomd kulon mukodik, de az utolso valaszolo linkjet -is- nagyon koszonom mivel hasznos.
2018. aug. 10. 13:50
 6/11 A kérdező kommentje:

Akadt meg1 problemam es gondoltam nem nyitok meg1 kerdest hozza, hatha kapok itt valaszt. Fapadosan de a problemat megoldottam viszont hozzaadtam meg ket scriptet a kulso js file-hoz amiket nem jelenit meg semmi viszont a codepen-en minden rendesen mukodik.

[link] - asterix2, asterix id-k nem jelennek meg, de a tobbi script siman mukodik. Mit rontok el?

2018. aug. 12. 14:25
 7/11 anonim ***** válasza:

Attól függ, hol hívod meg a külső script-et. codepen valószűleg hozzáköti a DOM (oldal szerkezet) beöltéséhez.

Tedd a script beágyazást (embed tag) a html fájlod végére. Így garantált, hogy amikre hivatkozol, azok már léteznek:



Ebben az esetben létezik az "asterix" azonosítóval rendelkező tag, tehát kerül érték az innerHTML-be.

<p id="asterix"></p>

<script>

document.getElementById("asterix").innerHTML = math(4, 3);

</script>



Ebben az esetben a script nem találja meg az asterix azonosítójú elemet, mivel még nem létezik a DOM-ban, így annak nem létezik innerHTML-je se, jobb esetben console-on erről hibaértesítést kapsz.

<script>

document.getElementById("asterix").innerHTML = math(4, 3);

</script>

<p id="asterix"></p>

2018. aug. 12. 16:11
Hasznos számodra ez a válasz?
 8/11 A kérdező kommentje:

Kedves utolso, koszonom valaszod. Azt gondoltam , hogy a kulso js file ugyanugy mukodik, mint egy kulso css file. Megadom az ID-t stb es a html fajl felismeri.

Bonyolult ugy megoldani a "hatalmas" problemamat, hogy az asterix-et a kulso js file-bol hivja be?

2018. aug. 13. 11:47
 9/11 anonim ***** válasza:

Egyáltalán nem. Mint mondtam, a külső js fájl beágyazását vagy a fájl végére teszed, vagy stílusosabban, marad a header-ben, de valahogy így nézne ki a javascript fájlod körítéssel:


window.addEventListener('load', function(){

// te kódod, ami lefut, ha betöltődött az oldal

});



[link]

2018. aug. 13. 19:57
Hasznos számodra ez a válasz?
 10/11 A kérdező kommentje:

Koszi szepen, mukodik. A linket lementem.

Nehez a felfogasom:), mivel ezidaig kozom nem volt ehhez a vilaghoz igy nehezebben megy 1-1 dolog megertese.

2018. aug. 13. 21:44
1 2

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!