警报jquery功能

时间:2012-04-11 13:28:43

标签: jquery function tags

当您点击其他链接时,我正在jquery中创建一个链接。

问题是我想在点击这个新链接时生成警报,但不会触发操作!

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

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

链接到代码:http://jsfiddle.net/LARef/

3 个答案:

答案 0 :(得分:0)

当你运行

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

#remove元素尚不存在..(,因为它是在您点击第一个链接时添加的

如果将jquery升级到1.7 + ,请使用.delegate()方法(.on()

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

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

演示

v1.7 +的等价物是

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

答案 1 :(得分:0)

创建元素后必须绑定事件。 将您的代码更改为此代码,它将起作用:

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

答案 2 :(得分: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/