2009-08-26 3 views
0

HTMLファイルに1行のテーブルがあります。 jQueryでは、データベースのデータに基づいて多くの行を追加します。しかし、動的に作成されたアンカータグはイベントに を応答しません。このアンカータグをイベントに対応させるにはどうすればよいですか?私はこのようなコードの行を記述するときにjQuery でのデータベースjQueryは、イベントに応答しないテーブル行を動的に作成しました。

$('<tr> <td> </td> <td id="log'+i+'"><a href="viewlog.php" target="_blank">log</a></td></tr> ').appendTo('#container'); 

イベントからの行の追加は

jQueryの一部

//の部分は今ではを応答しません。

$('#container a ').click(function() 
{ 

    alert("Coming here "); 
}); 

// HTML

<html> 
    <table id="container"> 
     <tr> 
      <td> 
       Name 
      </td> 
      <td> 
       Link 
      </td> 
     </tr> 
    </table> 
</html> 

答えて

4

あなたがit.Tryを取得することはありません最初にした後、作成された要素をクリックイベントを割り当てる場合:この中

$("#container a").live("click", function(){ 
    ... 
}); 

リンクが作成されるたびに、イベントがそのリンクに添付されます(http://docs.jquery.com/Events/live#typefn)。

+0

住んでいます。( "クリック"、機能() { 警告( "ここに来るの"); }); 動的に追加された行はhtmlページから消えます。私は行方不明のものがありますか? – Vidya

2

mck89が示唆するように、新しいdomを追加する前にコードを実行すると、イベントはバインドされません。

イベントのバインドを連鎖させるか、代わりにライブ関数を使用することができます。このコードに $( '#コンテナTD')を追加した後

$('your html') 
    .appendTo('#container') 
    .find('a') 
    .click(function() { 
     alert('You clicked!'); 
    }); 
+0

find()の使い方 –

関連する問題