2012-04-11 15 views
0

別のリンクをクリックするとjqueryでリンクが作成されます。アラートjquery関数

問題は、この新しいリンクをクリックしたときに警告を生成したいが、アクションをトリガーしないということです。コードへ

$('#test').click(function() { 
    $("<div/>").html('<a href="#" id="remove">Remove</a>').appendTo("#results"); 
}); 

$('#remove').click(function() { 
    alert('lol'); 
});​ 

リンク:http://jsfiddle.net/LARef/

+0

を使用する必要があり、要素はありませんまだ存在しない。要素が作成されたら、イベントハンドラをバインドします。 –

答えて

0

あなたは `#のremove`にイベントハンドラをバインド現時点でデリゲート

$('#test').click(function() { 
    $("<div/>").html('<a href="#" id="remove">Remove</a>').appendTo("#results"); 
}); 

$(window).delegate('#remove','click', function() { 
    alert('lol'); 
});​ 

http://jsfiddle.net/LARef/1/

0

時、あなたはあなたが上でクリックしたときに追加されるよう

$('#remove').click(function() { 
    alert('lol'); 
}); 

#remove要素は(..まだ存在しない実行します最初のリンク

.delegate()メソッド(または.on()あなたはjQueryの1.7以降にアップグレードした場合)

$('#results').delegate('#remove', 'click', function(){ 
    alert('lol'); 
}); 

デモhttp://jsfiddle.net/LARef/2/


でV1.7の+の等価は、あなたは後にイベントをバインドする必要が

$('#results').on('click', '#remove', function(){ 
    alert('lol'); 
}); 
0

ですあなたは要素を作成します。これにあなたのコードを変更 、それが動作します:

$('#test').click(function() 
{ 
    $("<div/>").html('<a href="#" id="remove">Remove</a>').appendTo("#results"); 
    $('#remove').click(function() 
    { 
     alert('lol'); 
    }); 
});