jQueryは要素を追加した後に元のイベントが実行されない問題を解決します

jQueryは要素を追加した後に元のイベントが実行されない問題を解決します

まずエラーコードを見てみましょう。

html:

        <テーブルボーダー="1" id="ベスト">
			<tr>
				<td>
					<button class="change">変更</button>
				</td>				
			</tr>
			<tr>
				<td>
					<button class="del">削除</button>
				</td>				
			</tr>
			<tr class="last"><td><button class="add">追加</button></td></tr>
		</テーブル>

js:

$(".add").click(function(){
		var newYuansu = $("<tr><td><button class='del'>削除</button></td></tr>");
		$(".last").before(newYuansu);
})
$(".del").click(関数(){
        $(this).parents("tr").remove();
})

jQuery を使用して新しい要素を追加すると、新しい要素では元のイベント関数の一部が実行されません。

ブロガーは学生であり、1つの方法だけを研究しました。

$("#best").on("クリック",".del",function(){
		$(this).parents("tr").remove();
})

元のクリックイベントをこのように記述すると、新しく追加された要素で使用できるので、非常に便利です〜

補充:

1. jQuery バージョン 1.3 未満 (jQuery 1.3 は含まない) の場合は、jQuery バージョンを更新する必要があります。

解決策がないから 解決策がない 解決策がない 解決策がない

2. jQuery バージョンが 1.3 ~ 1.8 の場合、js/jq の動的に追加された要素によってトリガーされるバインディング イベントの解決策 (on イベントはバージョン 1.6 未満ではサポートされておらず、エラーが報告されるため、on イベントの使用は推奨されません)

ライブ イベントをバインドします (ライブ イベントは jQuery 1.9 以下でのみサポートされ、それ以降のバージョンではサポートされません)。

$(".del").live("click",function(){ ///jquery 1.9 (1.9 を除く) 以下では、alert('ここには動的要素によって追加されたイベントがあります');

           })

3. 使用を推奨する

jQuery バージョンが 1.9 以上の場合、ライブ デリゲート イベントは削除され、on を通じて実装されます。 js/jq で動的に追加された要素のバインディング イベントをトリガーするソリューション

注意: ページに jq の下位バージョン (1.3 ~ 1.8) と上位バージョンの jq (jquery1.9 以上) の両方が含まれている場合、ライブ デリゲート イベントは上位バージョンによって削除されます。その結果、jquery バージョンが 1.3 ~ 1.8 でライブ イベントが使用されている場合でも、ページはエラーを報告します。

要素追加後に本来のイベントが実行されない問題をjQueryで解決する方法についての記事は以上です。jQuery関連のコンテンツについては、123WORDPRESS.COMの過去記事を検索するか、以下の関連記事を引き続き閲覧してください。今後とも123WORDPRESS.COMをよろしくお願いいたします。

以下もご興味があるかもしれません:
  • 要素を追加および削除するためのjQueryメソッド
  • JQueryは動的に要素を追加し、クリックイベントを追加してプロセス分析を実装します。
  • JQueryバインディングイベントの4つの実装方法の分析
  • jQuery 削除イベントメソッド

<<:  テキストエリア テキストエリアの幅と高さ 幅と高さの自動適応実装コード

>>:  Dockerコンテナ終了エラーコードの手順

推薦する

Ubuntu16.04にCUDA9.0をインストールするための詳細なチュートリアル

序文:この記事は、CUDA 9.0 をインストールした経験に基づいています。CUDA 9.0 は現在...

HTMLテーブルの詳細な説明

機能: データ表示、テーブルアプリケーションシナリオ。 <table> テーブル<...

MySQLとOracleの誤解の詳細な説明

目次本質的な違いデータベースセキュリティ権限スキーマの移行パターンオブジェクトの類似性スキーマオブジ...

Django+mysql の設定と簡単な操作データベースのサンプルコード

ステップ1: MySQLドライバをダウンロードするcmdは作成されたDjangoプロジェクトディレク...

MySQL DML ステートメントの概要

DML 操作とは、データベース内のテーブル レコードに対する操作を指し、主にテーブル レコードの挿入...

WeChatミニプログラムユーザー認証による携帯電話番号の取得(getPhoneNumber)

序文ミニプログラムには、ユーザーを取得するための非常に便利な API があり、getPhoneNum...

Dockerでコンテナを作成するときのディレクトリ権限

昨日プロジェクトを書いていた時に、MySQL の派生版である Percona を使う必要があったので...

HttpとHttpsの両方をサポートするNginxの詳細な設定

最近の Web サイトでは Https をサポートすることがほぼ標準機能となっており、Nginx は...

Vue モバイル開発で better-scroll を使用するときにクリック イベントが失敗する問題の解決策

最近、モバイル プロジェクトの開発方法を学ぶために vue を使用し、スクロールには better-...

リモート Linux システムでポートが開いているかどうかを確認する 3 つの方法

これは、Linux 管理者だけでなく、私たち全員にとって非常に重要なトピックです。つまり、IT イン...

Vue が配列の変更を監視できない問題の解決方法

目次1. Vueリスナー配列2. vueが配列の変更を監視できない状況1. Vueリスナー配列Vue...

Javascript ツリー メニュー (11 項目)

1. dhtmlxツリー dHTMLxTree は機能豊富なツリー メニュー コントロールです。豊...

DockerにMinIOをインストールするための詳細な手順

目次1. docker環境が正常かどうかを確認する2. miniIOイメージをダウンロードする3. ...

HTML チュートリアル: 順序付きリスト

<br />原文: http://andymao.com/andy/post/103.h...

JS for ループで setTimeout を使用する 4 つのソリューション

目次概要解決策 1: クロージャ解決策2: 構造を分割する解決策3:解決策4: setTimeout...