onclickで複数関数呼び出し
JavaScriptのonclickイベントで複数の関数を呼び出す方法
JavaScriptにおいて、HTML要素のクリックイベントに複数の関数を関連付けるには、以下のような方法が考えられます。
複数の関数をカンマで区切る
<button onclick="function1(); function2();">ボタン</button>
この方法では、複数の関数をカンマで区切って直接onclick
属性に指定します。
匿名関数を定義し、その中で複数の関数を呼び出す
<button onclick="() => { function1(); function2(); }">ボタン</button>
この方法では、匿名関数を定義し、その中で複数の関数を呼び出します。
別の関数を呼び出す関数を作成する
function callMultipleFunctions() {
function1();
function2();
}
<button onclick="callMultipleFunctions()">ボタン</button>
この方法では、複数の関数を呼び出すための別の関数を定義し、onclick
属性にその関数を指定します。
注意
- 関数に引数を渡す必要がある場合は、それぞれの関数の呼び出し時に引数を指定してください。
- 関数の呼び出し順は、指定された順序で実行されます。
例
<button onclick="function1(10); function2('Hello');">ボタン</button>
<button onclick="function1(); function2();">ボタン</button>
- 解説
onclick
属性に直接関数を指定しています。- 関数名はカンマで区切られています。
- クリックすると、
function1()
とfunction2()
が順に実行されます。
<button onclick="() => { function1(); function2(); }">ボタン</button>
function callMultipleFunctions() {
function1();
function2();
}
<button onclick="callMultipleFunctions()">ボタン</button>
- 解説
callMultipleFunctions()
という関数を定義しています。onclick
属性にcallMultipleFunctions()
を指定しています。- クリックすると、
callMultipleFunctions()
が実行され、その中でfunction1()
とfunction2()
が順に実行されます。
<button onclick="function1(10); function2('Hello');">ボタン</button>
- この例では、
function1()
に引数10
を、function2()
に引数'Hello'
を渡しています。
イベントリスナーを使用する
const button = document.getElementById('myButton');
button.addEventListener('click', function1);
button.addEventListener('click', function2);
- 解説
addEventListener()
メソッドを使用して、ボタン要素にクリックイベントリスナーを登録します。- 複数のリスナーを登録することで、クリック時に複数の関数を呼び出すことができます。
関数を配列に格納し、ループで呼び出す
const functionsToCall = [function1, function2];
const button = document.getElementById('myButton');
button.addEventListener('click', () => {
functionsToCall.forEach(func => func());
});
- 解説
- 関数を配列に格納します。
Promiseを使用する
function function1() {
return new Promise((resolve, reject) => {
// 処理
resolve();
});
}
function function2() {
return new Promise((resolve, reject) => {
// 処理
resolve();
});
}
const button = document.getElementById('myButton');
button.addEventListener('click', async () => {
await function1();
await function2();
});
- 解説
- 関数を非同期処理として定義し、Promiseを返します。
async/await
を使用して、複数の関数を順次実行します。
javascript html onclick