为什么这个单击处理程序在JQuery中不起作用?

时间:2011-11-03 23:41:07

标签: javascript jquery

我的页面中有以下代码:

var offer_link = $('<a>').addClass('fc-offer-link');
offer_link.click(function() {
    alert('Hello');
});

offer_link.attr('href', "#" + this.id);
offer_link.append(this.subject);

this.list_item = $('<li>');
this.list_item.append(offer_link);

但即使链接出现在页面上,处理程序也永远不会被调用。发生了什么事?

2 个答案:

答案 0 :(得分:1)

问题原来是项目被插入DOM的地方。它是使用以下方式插入的:

$('#my_list').html(my_new_list.html())

应该一直在使用:

$('#my_list').replaceWith(my_new_list)

答案 1 :(得分:-1)

我认为您只需要将链接附加到元素,如下所示:

<script type="text/javascript">
    $(function(){
        var link = $("<a>Click Me!</a>").addClass("fc-offer-link").appendTo($("#div1"));
        if (link){
            link.click(function(){
                alert("Hey there!");
            });  
        }   
    });
</script>
<div id="div1"></div>

编辑:不确定我为什么被投票,但这里是jsFiddle