2012-01-25 35 views
0

jqueryでテーブルの行を動的に作成し、各行に削除ボタンを追加し、そのボタンに対応する行(行内)が削除されるイベントをこのボタンに追加します私がそのボタンをクリックすると、私の虫は上の3つのボタンだけがアクティブであり、解雇され、最後にはボタンが機能しません。動的に作成されたボタンが正しく動作しない

$(function(){ 
    $('<input></input>') 
     .attr({'type': 'button'}) 
     .val("Remove") 
     .appendTo('table#AllSelectedTest tbody tr:first td:last') 
    ; 
}); 

$(document).ready(function() { 
    $("table#AllSelectedTest tbody tr input").live({ 
     click: function(){ 
      $(this).closest('tr').remove(); 
     } 
    }) 
}); 

私は上記のコードを使用します。ボタンを生成し、それをイベントにバインドします。私の問題は、いくつかのボタンの作品であり、いくつかは、あなたのコードを見ることなく

+1

、あなたの古いコードを与えることができればまた、それが参考になります。 – scessor

+0

私の質問を編集して自分のコードを追加しました – Vishwajeet

答えて

2

でその要素にIDを与えるために、常に良いです。フィドル例

$(document).ready(function(){ 
    $('<input>').attr({type: 'button', id:"remove_button", value:'Remove'}) 
        .appendTo('table#AllSelectedTest tbody tr:first td:last'); 

    $("#remove_button").live("click", function(){ 
         $(this).closest('tr').remove(); 
     }); 
}); 

以下のようにコードを変更してみてください:あなたが1.7を超えるjqueryのを使用している場合 http://jsfiddle.net/vSUYj/1/

また、代わりにliveの使用onしてください。

更新:

$(document).ready(function(){ 
     var elem = $('table#AllSelectedTest tbody tr:first td:last'); 
     elem.append('<input type="button" id="remove_button" value="Remove"/>'); 

    $("#remove_button").live("click", function(){ 
     $(this).closest('tr').remove(); 
    }); 
}); 

フィドル例を働いていない上記の場合には、同様にこれを試してみてください。http://jsfiddle.net/vSUYj/

+0

私はこの機能も使用しますが、今でもトップ4ボタンだけがアクティブで、4位以下のボタンは機能していません。 – Vishwajeet

+0

アップデートされた部分に別の答えが含まれています..試してみてください。 –

+0

そのように見えるのは – Vishwajeet

1

ではありません 、それは確かに言うことは不可能ですが、あなたはこれらのボタンのハンドラを割り当てることが.live().delegate()を使用していますか?

編集:また、これらのメソッドは、jQueryの最新バージョンでは廃止されましたことに留意すべきである、と新しい方法が.on()

+0

私はあなたのソリューションを試しましたが、今でもトップ4のボタンだけがアクティブで、4番目のポジション以下のボタンは機能していません これは私にとっては奇妙なことです。ここで起こる – Vishwajeet

関連する問題