そのため、いくつかのボタンに通常の onclick イベントが関連付けられており、onclick イベントを処理する各関数は異なる処理を行います (したがって、両方のイベントに同じ関数を再利用することはできません)。
element1.onclick = function() {
if(this.classList.contains('disabled') {
return false;
}
// For example make an AJAX call
};
element2.onclick = function() {
if(this.classList.contains('disabled') {
return false;
}
// For example hide a div
};
私はこの「無効化された」クラス チェックの重複したコードを書いています。一般的な onclick チェックをフックしてこれを排除し、そのチェックに合格した場合は通常の onclick イベントを発生させたいと考えています。
以下が機能しないことはわかっていますが、私がやろうとしていることを説明すると思います:
document.addEventListener('click', function() {
// 1. Do the disabled check here
// 2. If the check passes delegate the event to the proper element it was invoked on
// 3. Otherwise kill the event here
});
私はJavaScriptライブラリを使用しておらず、誰かが「jQueryを使用するだけ」タイプの回答を思いついた場合に備えて、使用する予定もありません.
編集: ブール値の 3 番目の引数を addEventListener に true として渡す必要があり、すべて問題ありません。