jQueryは、同じクラス名を持つ2つのネストされた要素に対して2回起動します

jemz

このボタンがあります。ネストされた2つの要素に同じクラス名がある場合、clickリスナーが2回起動することに気づきました。クリックしたときに、どうすればこれを修正できますか?

$('body').on('click', '.remove', function(e) {
  e.preventDefault();

  if ($(e.target).hasClass('remove')) {
    console.log('test'); //executed twice here
  }
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<button type="button" class="btn remove "><i class="fas fa-trash remove">Remove icon</i></button>

ディップ

同じクラスの親/子があるため、伝播を防ぐ必要があるため、 e.stopPropagation()

$('body').on('click', '.remove', e => {
  e.stopPropagation()
  $(e.currentTarget).hasClass('remove') ? console.log('test') : ''
})
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.2/css/all.min.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button type="button" class="btn remove"><i class="fas fa-trash remove">remove</i></button>


他のオプションは使用することです e.currentTarget()

$('body').on('click', '.remove', e => $(e.currentTarget).hasClass('remove') ? console.log('test') : '')
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.2/css/all.min.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button type="button" class="btn remove"><i class="fas fa-trash remove">remove</i></button>


そしてここにJSの純粋なソリューションがあります

document.addEventListener('click', e => e.target.classList.contains('remove') ? console.log('test') : '')
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.2/css/all.min.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button type="button" class="btn remove"><i class="fas fa-trash remove">remove</i></button>

注:を持っbuttonているtype='button'ので、使用する必要はありませんe.preventDefault()

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

クラスによって初期化された場合、select2は2回起動します

分類Dev

Java-JMockitは、同じフィールド名を持つ2つの注入されたクラスをテストします

分類Dev

Python:最初の2つの要素が同じ場合、ネストされたリストに要素を追加します

分類Dev

クライアントは、同じソケットリスナーに対して同時に2つの接続を持つことができますか?

分類Dev

マウスでクリックしたときに、まったく同じで同じ名前の2つのクラスを持つhtml内の1つのクラスのみを見つけるにはどうすればよいですか?

分類Dev

同じSSID /パスワードを持つ2つのワイヤレスネットワークは(技術的に)1つとして扱われますか?

分類Dev

同じSSID /パスワードを持つ2つのワイヤレスネットワークは(技術的に)1つとして扱われますか?

分類Dev

Jqueryイベントは、現在選択されているボタンではなく、同じクラス名を持つすべてのボタンに対して発生します

分類Dev

ネストされたPythonクラス定義の問題:同じ構文を使用して2つのクラスを定義しましたが、1つで「未定義の名前」エラーが発生します

分類Dev

ツリーの下に同じ名前と相対パスを持つディレクトリを(指定された2つのディレクトリに対して)一覧表示する方法。

分類Dev

同じクラス名を持つすべての要素のinnerHTMLを別の要素に挿入します

分類Dev

同じクラス名を持つすべての要素に子を追加しようとしています

分類Dev

同じクラス名を持つ2つのjqueryスライダーですが、問題はスライダーの移動にあります

分類Dev

分度器は、同じクラス名を持つ2つのスパンを連結します

分類Dev

onClick要素は、同じクラス名を持つ関連するdivにクラス名を追加します

分類Dev

ジュリア:同じサイズの2つのベクトルに対して、ヒストグラムに同じ数のビンを持たせるにはどうすればよいですか?

分類Dev

同じhrefを持つすべての要素にクラスを追加します

分類Dev

要素で、[入力のためにイベントを2回起動する]チェックボックスをクリックします

分類Dev

greensockを使用して、同じクラスのJavascriptを持つ要素に対して個別にアニメーションをトリガーします

分類Dev

同じネストされた構造と同じキーを持つが値が異なる可能性がある2つのjsonを比較しますか?

分類Dev

同じクラス名を使用して動的に生成された div に要素を追加する - Jquery

分類Dev

同じクラスの複数の兄弟を持つkeyupで動的に作成された個々のテキスト入力のサイズを変更します

分類Dev

ネストされたリストで2番目に大きい要素を持つ要素を検索します

分類Dev

jQueryで冗長な要素または同じクラスが2つある要素を選択します

分類Dev

同じクラスのすべての要素に対してJSコードを起動します

分類Dev

Pythonで同じ値を持つ2つのネストされた要素を持つリスト要素を検索する

分類Dev

クラスを使用して作成された2つの異なるオブジェクトは、同じメモリを共有します

分類Dev

Apache; 2つの異なるディレクトリに対して1つの同じエイリアスを持つことは可能ですか?

分類Dev

Javaを使用してセレンで同じクラス名を持つ2番目の要素にアクセスする方法

Related 関連記事

  1. 1

    クラスによって初期化された場合、select2は2回起動します

  2. 2

    Java-JMockitは、同じフィールド名を持つ2つの注入されたクラスをテストします

  3. 3

    Python:最初の2つの要素が同じ場合、ネストされたリストに要素を追加します

  4. 4

    クライアントは、同じソケットリスナーに対して同時に2つの接続を持つことができますか?

  5. 5

    マウスでクリックしたときに、まったく同じで同じ名前の2つのクラスを持つhtml内の1つのクラスのみを見つけるにはどうすればよいですか?

  6. 6

    同じSSID /パスワードを持つ2つのワイヤレスネットワークは(技術的に)1つとして扱われますか?

  7. 7

    同じSSID /パスワードを持つ2つのワイヤレスネットワークは(技術的に)1つとして扱われますか?

  8. 8

    Jqueryイベントは、現在選択されているボタンではなく、同じクラス名を持つすべてのボタンに対して発生します

  9. 9

    ネストされたPythonクラス定義の問題:同じ構文を使用して2つのクラスを定義しましたが、1つで「未定義の名前」エラーが発生します

  10. 10

    ツリーの下に同じ名前と相対パスを持つディレクトリを(指定された2つのディレクトリに対して)一覧表示する方法。

  11. 11

    同じクラス名を持つすべての要素のinnerHTMLを別の要素に挿入します

  12. 12

    同じクラス名を持つすべての要素に子を追加しようとしています

  13. 13

    同じクラス名を持つ2つのjqueryスライダーですが、問題はスライダーの移動にあります

  14. 14

    分度器は、同じクラス名を持つ2つのスパンを連結します

  15. 15

    onClick要素は、同じクラス名を持つ関連するdivにクラス名を追加します

  16. 16

    ジュリア:同じサイズの2つのベクトルに対して、ヒストグラムに同じ数のビンを持たせるにはどうすればよいですか?

  17. 17

    同じhrefを持つすべての要素にクラスを追加します

  18. 18

    要素で、[入力のためにイベントを2回起動する]チェックボックスをクリックします

  19. 19

    greensockを使用して、同じクラスのJavascriptを持つ要素に対して個別にアニメーションをトリガーします

  20. 20

    同じネストされた構造と同じキーを持つが値が異なる可能性がある2つのjsonを比較しますか?

  21. 21

    同じクラス名を使用して動的に生成された div に要素を追加する - Jquery

  22. 22

    同じクラスの複数の兄弟を持つkeyupで動的に作成された個々のテキスト入力のサイズを変更します

  23. 23

    ネストされたリストで2番目に大きい要素を持つ要素を検索します

  24. 24

    jQueryで冗長な要素または同じクラスが2つある要素を選択します

  25. 25

    同じクラスのすべての要素に対してJSコードを起動します

  26. 26

    Pythonで同じ値を持つ2つのネストされた要素を持つリスト要素を検索する

  27. 27

    クラスを使用して作成された2つの異なるオブジェクトは、同じメモリを共有します

  28. 28

    Apache; 2つの異なるディレクトリに対して1つの同じエイリアスを持つことは可能ですか?

  29. 29

    Javaを使用してセレンで同じクラス名を持つ2番目の要素にアクセスする方法

ホットタグ

アーカイブ