level(lvl)
引数1,2または3を使用して関数に呼び出す場合は、それぞれidが1,2,3のボタンで渡されます。ただし、ページが読み込まれるたびに、クリックせずに3番目のオプションが既に実行されています。私は何が欠けているのですか?これはこれを行う正しい方法ではありませんか? コードはjavascript
です。異なるボタンを使用して異なる引数で関数を呼び出す - JavaScript
const level = function(lvl) {
if(lvl === 1) {
ctx.canvas.width = 400;
ctx.canvas.height = 400;
cols = 9;
rows = 9;
numbombs = 10;
console.log("called 1");
return;
}
if(lvl === 2) {
ctx.canvas.width = 490;
ctx.canvas.height = 490;
cols = 13;
rows = 13;
numbombs = 30;
console.log("called 2");
return;
}
if(lvl === 3) {
ctx.canvas.width = 1050;
ctx.canvas.height = 490;
cols = 30;
rows = 14;
numbombs = 99;
console.log("called 3");
return;
}
};
document.getElementById("one").onclick = level(1);
document.getElementById("two").onclick = level(2);
document.getElementById("three").onclick = level(3);
そしてhtml
一部
<button id="one" class="lvl">Beginner</button>
<button id="two" class="lvl">Intermediate</button>
<button id="three" class="lvl">Advanced</button>
ありがとうございました。しかし、document.getElementById( "one")。onclick = level(1); document.getElementById( "two")。onclick =レベル(2); document.getElementById( "three")。onclick =レベル(3); これはすべてを1つずつ呼び出すので、レベル3の場合にのみ実行されます。 – nkarmyan
それ以外は問題ありません。クリックしたときにのみ動作させる方法はありますか? – nkarmyan
あなたをよく理解していませんでした。 - それはレベル3のためだけに実行を終了します - これはどういう意味ですか?したがって、クリック後にのみ機能します。コール 'level(1)'は、クリックで動作する別の関数を返すだけです –