2016-04-29 6 views
0

を動作を停止し、htmlファイルに複数の外部JavaScriptを追加しました。次に、私はalgoritmus.jsvypis_stavkujusich.jsという2つの外部javascriptファイルを持っています。は1つが、私はこの問題を次のようしている

私はこのように、index.htmlをの頭に2つのJavaScriptを追加しました:

<script src="js/algoritmus.js"> </script> 
 
<script src="js/vypis_stavkujucich.js"> </script>

第二は、テーブルの下にいくつかのテキストを挿入する必要があり、身体のテーブルにいくつかの情報を挿入する必要があります。今私の問題:これらのJavaScriptスクリプトを別々に追加すると、うまく動作します。私はそれらを一緒に追加すると、彼らの二番目だけが動作します! srcパスを2回確認したところ、両方がinit()関数でラップされているため、ページが完全にロードされたときにのみ起動できます。私は本当に自分自身で解決策を見つけることができません。私はすべてのコードを1つのjsファイルに入れたくないので、良いプログラミング習慣に従うためにそれらを分けたいと思っています。私の英語(stackovewflow上の私の最初のポスト)

index.html 

<!doctype html> 
 

 
<html> 
 

 
<head> 
 

 
<!-- IMPORT JAVASCRIPT AND JQUERY --> 
 

 
<script src="js/algoritmus.js"> </script> 
 
<script src="js/vypis_stavkujucich.js"> </script> 
 

 
<title> Virtuálne hry VirGames </title> 
 

 
<meta charset="utf-8"/> 
 
<meta name="viewport" content="width=device-width, initial-scale=1.0"/> 
 

 
<!-- IMPORT CSS --> 
 

 
<link rel="stylesheet" href="css/reset.css" /> 
 
<link rel="stylesheet" href="css/main.css" /> 
 
<link href='https://fonts.googleapis.com/css?family=Open+Sans' rel='stylesheet' type='text/css'> 
 

 
</head> 
 

 
<body> 
 

 
<script> 
 
var teraz=new Date(); 
 
var nastavMinuty=function() { 
 
\t var minutyPred=teraz.getMinutes(); 
 
\t var minutyPo; 
 
\t if(minutyPred.length>3) { 
 
\t \t minutyPo='0'+minutyPred; 
 
\t \t return minutyPo; 
 
\t } 
 
\t else 
 
\t \t return minutyPred; 
 
} 
 
document.write("Aktuálny dátum: "+teraz.getDate()+"."+(teraz.getMonth()+1)+"."+teraz.getFullYear()); 
 
document.write("<br> Aktuálny čas: "+teraz.getHours()+":"+nastavMinuty()+":"+teraz.getSeconds()); 
 
</script> 
 

 
<h1 id="main_h"> Virtuálne hry VirGames - s nami vyhráva každý ! </h1> 
 

 
<table id="tabulka_zapasov"> 
 
<tr> 
 
<th> Číslo zápasu </th> 
 
<th> Zápas </th> 
 
<th> 1 </th> 
 
<th> X </th> 
 
<th> 2 </th> 
 
</tr> 
 
</table> 
 

 
<div id="prava_strana"> 
 
Generovať zápasov: <input type="text" id="pocet_zapasov" /> 
 
<input type="submit" value="Generovať!" id="generuj_submit" /> <br /> 
 
Vytvoriť imaginárnych stavkárov: 
 
<input type="text" id="pocet_stavkarov" /> 
 
<input type="submit" value="Vytvoriť" id="vytvorit_submit" /> 
 
<div id="udaje_o_stavkaroch"></div> 
 
<table id="tabulka_stavok"> 
 
<tr> 
 
<th> stavkári podali 1 </th> 
 
<th> stavkári podali X </th> 
 
<th> stavkári podali 2 </th> 
 
<th> celkom € </th> 
 
</tr> 
 
</table> 
 
</div> 
 

 
<div id="vypis_stavkujucich"> 
 

 
<br id="clear-fix" /> 
 

 
</body> 
 

 
</html>

algoritmus.js 

function init() { 
 

 
function Stat(nazov,rank) { 
 
\t this.nazov=nazov; 
 
\t this.rank=rank; 
 
\t this.favorit=false; 
 
} 
 

 
var staty=[]; 
 

 
var brazilia=new Stat("Brazília",9.6); 
 
var anglicko=new Stat("Anglicko",8.2); 
 
var cesko=new Stat("Česko",4.5); 
 
var slovensko=new Stat("Slovensko",2.2); 
 
var polsko=new Stat("Poľsko",4.1); 
 
var ukrajina=new Stat("Ukrajina",4.2); 
 
var spanielsko=new Stat("Španielsko",9.5); 
 
var taliansko=new Stat("Taliansko",8.7); 
 
var madarsko=new Stat("Maďarsko",4.8); 
 
var japonsko=new Stat("Japonsko",5.1); 
 
var mexiko=new Stat("Mexiko",6.6); 
 
var rusko=new Stat("Rusko",5.6); 
 
var chorvatsko=new Stat("Chorvátsko",4.9); 
 
var rumunsko=new Stat("Rumunsko",3.9); 
 
var finsko=new Stat("Fínsko",6.8); 
 
var svedsko=new Stat("Švédsko",6.5); 
 
var island=new Stat("Island",5.9); 
 
var usa=new Stat("USA",7.2); 
 
var kolumbia=new Stat("Kolumbia",5.7); 
 
var venezuela=new Stat("Venezuela",6.2); 
 
var bulharsko=new Stat("Bulharsko",3.1); 
 
var cina=new Stat("Čína",5.5); 
 
staty.push(finsko); 
 
staty.push(svedsko); 
 
staty.push(island); 
 
staty.push(usa); 
 
staty.push(kolumbia); 
 
staty.push(venezuela); 
 
staty.push(bulharsko); 
 
staty.push(cina); 
 
staty.push(madarsko); 
 
staty.push(japonsko); 
 
staty.push(mexiko); 
 
staty.push(rusko); 
 
staty.push(chorvatsko); 
 
staty.push(rumunsko); 
 
staty.push(brazilia); 
 
staty.push(anglicko); 
 
staty.push(cesko); 
 
staty.push(slovensko); 
 
staty.push(polsko); 
 
staty.push(ukrajina); 
 
staty.push(spanielsko); 
 
staty.push(taliansko); 
 

 
var mena=["Gustáv","František","Kadimír","Herbert","Hugo","Bonifác","Jožko","Sergej","Norbert","Kazimír","Branislav","Semir"]; 
 
var priezviska=["Janovský","Papadopulos","NejedzChleba","Krutý","Hlavatý","Ježo","Bujak","Had","Fuk","Metalový","Bulo","Aspirin","Kreken","Kunik","Kukuricudus","Vladis"]; 
 
function Stavkar(meno,priezvisko) { 
 
\t this.meno=meno+" "+priezvisko; 
 
\t this.peniaze=vratNahodneCislo(100); 
 
} 
 

 
var stavkari=[]; 
 

 
function vytvorStavkarov(pocet) { 
 
\t for(i=0;i<pocet;i++) { 
 
\t \t stavkar=new Stavkar(mena[vratNahodneCislo(mena.length)],priezviska[vratNahodneCislo(priezviska.length)]); 
 
\t \t stavkari.push(this.stavkar); 
 
\t } 
 

 

 
} 
 

 
var vytvorit_tlacitko=document.getElementById("vytvorit_submit"); 
 
vytvorit_tlacitko.onclick=function() { 
 
\t var kolkoStavkarov=document.getElementById("pocet_stavkarov").value; 
 
\t vytvorStavkarov(kolkoStavkarov); 
 
\t var udaje_o_stavkaroch=document.getElementById("udaje_o_stavkaroch"); 
 
\t for(i=0;i<kolkoStavkarov;i++) { 
 
\t \t var novyStavkar=document.createElement("p"); 
 
\t \t novyStavkar.innerHTML=stavkari[i].meno+" bude podávať za "+stavkari[i].peniaze+"€ na "+vyberPodanie(); 
 
\t \t udaje_o_stavkaroch.appendChild(novyStavkar); 
 
\t } 
 

 
} 
 

 
function vyberPodanie() { 
 
\t podanie=vratNahodneCislo(3); 
 
\t if(podanie==1) 
 
\t \t return 1; 
 
\t else if(podanie==2) 
 
\t \t return 'X'; 
 
\t else 
 
\t \t return 2; 
 
} 
 

 
vytvorStavkarov(10); 
 

 
var prvyKurz,xKurz,druhyKurz=0; 
 

 
var kurzyX=[2.40,2.60,2.80,3.00,3.20,3.40,3.60,3.80]; 
 
var kurzyFavorit=[1.40,1.45,1.50,1.60,1.70,1.80,1.90]; 
 
var kurzyOutsider=[2.10,2.20,2.25,2.30,2.45,2.50,2.60,2.70,2.80]; 
 

 
var generuj_tlacitko=document.getElementById("generuj_submit"); 
 
generuj_tlacitko.onclick = function generujZapasy(pocetZapasov) { 
 
\t var kolkoZapasov=document.getElementById("pocet_zapasov").value; 
 
\t pocetZapasov=kolkoZapasov; 
 
\t var tabulka=document.getElementById("tabulka_zapasov"); 
 
\t for(i=1;i<=pocetZapasov;i++) { 
 
\t \t var novyRiadok = document.createElement("tr"); 
 
\t \t tabulka.appendChild(novyRiadok); 
 
\t \t var prvaBunka=document.createElement("td"); 
 
\t \t var druhaBunka=document.createElement("td"); 
 
\t \t var tretiaBunka=document.createElement("td"); 
 
\t \t var stvrtaBunka=document.createElement("td"); 
 
\t \t var piataBunka=document.createElement("td"); 
 
\t \t prvaBunka.innerHTML=i; 
 
\t \t druhaBunka.innerHTML=vratZapas(); 
 
\t \t if(prvyStat.favorit) { 
 
\t \t \t tretiaBunka.innerHTML=kurzyFavorit[vratNahodneCislo(kurzyFavorit.length)]; 
 
\t \t \t piataBunka.innerHTML=kurzyOutsider[vratNahodneCislo(kurzyOutsider.length)] 
 
\t \t } 
 

 
\t \t else { 
 
\t \t \t tretiaBunka.innerHTML=kurzyOutsider[vratNahodneCislo(kurzyOutsider.length)]; 
 
\t \t \t piataBunka.innerHTML=kurzyFavorit[vratNahodneCislo(kurzyFavorit.length)] 
 
\t \t } 
 
\t \t stvrtaBunka.innerHTML=kurzyX[vratNahodneCislo(kurzyX.length)]; 
 
\t \t novyRiadok.appendChild(prvaBunka); 
 
\t \t novyRiadok.appendChild(druhaBunka); 
 
\t \t novyRiadok.appendChild(tretiaBunka); 
 
\t \t novyRiadok.appendChild(stvrtaBunka); 
 
\t \t novyRiadok.appendChild(piataBunka); 
 
\t } 
 
} 
 

 
function vratNahodneCislo(poAkeCislo) { 
 
\t var nahodneCislo=Math.floor(Math.random()*poAkeCislo); 
 
\t return nahodneCislo; 
 
} 
 

 
function vratZapas() { 
 
\t var favorit; 
 
\t prvyStat=staty[vratNahodneCislo(staty.length)]; 
 
    druhyStat=staty[vratNahodneCislo(staty.length)]; 
 
\t if(druhyStat==prvyStat) 
 
\t \t druhyStat=staty[vratNahodneCislo(staty.length)].nazov; 
 
\t var zapas=prvyStat.nazov+" vs "+druhyStat.nazov; 
 
\t if(prvyStat.rank>druhyStat.rank) 
 
\t \t prvyStat.favorit=true; 
 
\t else 
 
\t \t druhyStat.favorit=true; 
 
\t return zapas; 
 
} 
 

 
}; 
 

 
window.onload=init;

vypis_stavkujucich.jsのためにuの人は私を助けることを願って、申し訳ありません

function initialize() { 
 
var vypis_s=document.getElementById("vypis_stavkujucich"); 
 
var r=document.createElement("p"); 
 
r.innerHTML="nieco"; 
 
vypis_s.appendChild(r); 
 
}; 
 

 
window.onload=initialize;

+0

を参照してください。両方のスクリプトを(function(){....})でラップしてみてください – GrumpyHat

+0

私はinit(){}で最初にラップしました。関数、およびinitialize(){};それらの両方を、ページがウィンドウによって完全にロードされた後で初めて初期化させる。onload = init; –

+0

'window.onload = initialize;'もやっていますか?一つのものだけを 'window.onload'に割り当てることができるので、最後のものだけが動作します。 – Barmar

答えて

1

GrumpyHatが述べたように、あなたはproblablyファイル内の変数名との競合を持っています。

使用すると、1つのファイルにこのコードをお持ちの場合:別のファイルで

var a = "hello"; 

そして、このコード:

var a = "world"; 

あなたのコードが実行されます場合は、Aの値が何であるかのファイルに依存します最後に実行されます。これを修正するには、すべてのコードを (function() {...})でラップすることができます。

+0

私はもう一度それをチェックし、すべての変数は完全に異なる名前 –

0

あなたはそのようなあなたのイベントをバインドすることはできません。お試しください

function a() { 
    alert('loaded') 
} 
function b() { 
    alert('loaded2') 
} 
window.onload = a; 
window.onload = b; 

表示されるのは、2番目の機能が表示されるだけです。 あなたが代わりにイベントリスナーを使用し

window.onload = function() { 
    a(); 
    b(); 
} 

を使用する必要があり、私はそれが競合を命名変数可能性が言うと思います Add two functions to window.onload

関連する問題