[解決済み] jQuery On Clickが動作しない
2022-02-11 17:46:15
質問
イベントハンドラを起動させるのに苦労しています。以下のように、ページにJSONを呼び出しています。そして、私が作成したボタンの1つをクリックして、「hello there」アラートを実行できるようにしたいのです。ページ上の他のすべての要素では動作しますが
<button>
.
どなたか助けてください。
test.js
$(document).ready(function() {
$.getJSON('/api/v1/recipe/?format=json', function(data) {
$.each(data.objects, function(i, recipe) {
$('table#recipes').append('<tr><td>' + recipe.title + '</td><td>' + recipe.ingredients + '</td><td>' + recipe.method + '</td><td><button class="btn" type="button" id="rmv">remove</button></td></tr>');
});
});
$('rmv').on('click', function() {
alert('hello there!');
});
});
レシピ.html
{% extends 'base.html' %}
{% block content %}
<div class="container-fluid">
<div class="row-fluid">
<div class="span6">
<form action='' method="post">{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="go baby!">
</form>
</div>
<div class="span6">
<table class="table table-striped table-bordered" id="recipes">
<tr>
<th>Title</th>
<th>Ingredients</th>
<th>Method</th>
<th>Remove</th>
</tr>
</table>
</div>
</div>
</div>
{% block recipes %}{% endblock recipes %}
{% endblock content %}
解決方法は?
セレクタを間違えています。
$('#rmv')
で、動的に要素を追加する場合は、次のように使用します。
$(document).on('click','#rmv',function(e) {
//handler code here
});
ajax成功時のコールバックのループは、おそらく重複したidを持つ要素を生成してしまうので、@Alnitakが言ったように、cdeを修正した後、クラスセレクタに切り替えることができます。
$.getJSON('/api/v1/recipe/?format=json', function(data) {
$.each(data.objects, function(i, recipe) {
$('table#recipes').append('<tr><td>' + recipe.title + '</td><td>' + recipe.ingredients + '</td><td>' + recipe.method + '</td><td><button class="btn rmv" type="button" >remove</button></td></tr>');
});
});
で、セレクタは次のようになります。
$(document).on('click','.rmv',function(e) {
//handler code here
});
関連
-
[解決済み] jQuery .load()が動作しない
-
[解決済み] 要素外でのクリックを検出するにはどうすればよいですか?
-
[解決済み] jQueryで要素が非表示になっているかどうかを確認するには?
-
[解決済み] jQueryでチェックボックスに "checked "を設定する
-
[解決済み] jQueryの「exists」関数はありますか?
-
[解決済み] どのラジオボタンが選択されているかをjQueryで知るにはどうしたらよいですか?
-
[解決済み] jQueryでページを更新するにはどうすればよいですか?
-
[解決済み] jQueryでテーブルの行を追加する
-
[解決済み] jQueryで要素にスクロールする
-
[解決済み】jQueryでチェックボックスがチェックされているかどうかを確認するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】カルーセルで画像を中央に配置する方法
-
[解決済み] カルーセルで画像を中央に配置する方法
-
[解決済み] jQueryのディファレンシャルとプロミス - .then() vs .done()
-
[解決済み] jQueryでリンクを無効化する
-
[解決済み] jQuery ValidateプラグインでaddMethodを使用する
-
[解決済み] jQueryは、すべてのテキストフィールドの値の合計を計算する
-
[解決済み] jQueryでページスクロールをプログラム的に無効にする方法
-
[解決済み] jQuery バリデーション - エラーの配置
-
[解決済み] jquery-rails」と「jquery-ui-rails」は、1つのプロジェクトで管理することができるのでしょうか?
-
[解決済み] jQuery resizableを画像と結合する方法は?