1

これは間違いなく単純ですが、jquery に関する知識が不足しているため、複雑になっています。基本的に私はこのコードを持っています:

$(document).ready( 
    function() {
    $( "#remove")
    .click(function() {
        alert("I have been clicked!");
        $(this).parent().parent().remove();
    }); 
});

行を削除するためのボタンをテーブルに追加します(上記のコードを参照)。ボタンは次のとおりです。

<td ><button id='remove' type='button'>Remove</button></td>

ただし、クリックしても何も起こりません。これは、ドキュメントが読み込まれた後にボタンが作成されるという事実と関係があると思いますが、どうすればよいかわかりません。

4

1 に答える 1

5
$( "td").on('click', '#remove', function() {
        alert("I have been clicked!");
        $(this).parent().parent().remove();
    }); 

ボタンを動的に追加しようとしているので、デリゲート イベント ハンドラー (別名、ライブ イベント) が必要です。

jQuery > 1.7デリゲート イベントでは、次のように宣言されます。

$(container).on(eventName, target, handlerFunction);

詳細については、.on()

別のオプションが呼び出され.delegate()、その宣言プロセスは次のとおりです。

$(container).delegate(target, eventName, handlerFunction);

したがって、あなたの場合は次のようになります。

$('td').delegate('#remove', 'click', function() {
      alert("I have been clicked!");
      $(this).parent().parent().remove();
});

ノート

ここでは、ページ読み込み時に DOM に属するボタンcontainerのホルダーを意味します。#removeあなたの投稿からtd、何か他のものがあるかもしれません(有効なjQueryセレクター

であなたを検出できない場合はcontainer、の代わりにorを#remove使用してください。$(document)$('body')$('td')

于 2012-06-06T07:00:27.297 に答える