標題の通り、クリックしたら動的に増える(ユーザー動作によって増える)要素に対して、増加時にイベントを追加しているのですが、
その追加したものを削除する際にイベントが複数回発生してしまいます。
原因はわかっているのですが、解決方法がわからず
何卒よろしくお願い致します
ためしてみたこと
・デリゲート
・removeEventlistener
┗ 増加する要素のラッパーに対して、クリックイベントを付与してみたり
addEventする前に、イベント自体をremoveしてみたがうまくいかず
コードについて
具体的なコードを提示できないのですが、以下のような作りになっています
function 削除関数() {
・生成関数で生成された要素数に応じて、for文でaddEventListener('click');
・クリックされた要素のindex番号を取得、対象の要素を削除
}
function 生成関数() {
・ユーザー動作に応じて、動的に要素を増やす関数
・削除関数を登録しておく(動的に追加された要素のイベントを有効にするため)
⬆︎ 生成用関数の中で、削除関数が記述されているのは、なんだかよくない気もしています。
}
原因(まとめ)
原因としては、登録時に複数イベントが登録されてしまっていること
→ for文で回しているため、例えば3つ要素がある時は以下のようになっている
「1番目の要素(3イベント)、2番目の要素(2イベント)、3番目の要素(1イベント)」
お手数おかけしますが、何卒よろしくお願い致します。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/30 13:04