0

別のリンクをクリックすると、jquery でリンクが作成されます。

問題は、この新しいリンクをクリックしたときにアラートを生成したいのですが、アクションがトリガーされないことです!

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

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

コードへのリンク: http://jsfiddle.net/LARef/

4

3 に答える 3

0

デリゲートを使用する必要があります

$('#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/

于 2012-04-11T13:32:22.260 に答える
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');
});
于 2012-04-11T13:32:02.240 に答える
0

要素を作成した後、イベントをバインドする必要があります。コードをこれに変更すると動作します:

$('#test').click(function ()
{
    $("<div/>").html('<a href="#" id="remove">Remove</a>').appendTo("#results");
    $('#remove').click(function ()
    {
        alert('lol');
    });
});
于 2012-04-11T13:32:04.943 に答える