jQuery:为刚刚创建的元素添加事件处理程序

时间:2013-05-24 07:32:26

标签: jquery

我有一个声明添加了一个新的div:

$('#dates').append('<div class="'+classname+'">'+dd+'<br /><span class="month_selector">'+dm+'</span></div>');

但我不仅要创建元素,还要为其分配('click')动作。 当然我可以添加生成的id然后通过这个id访问创建的元素,但我觉得还有更漂亮的解决方案。

是吗?

2 个答案:

答案 0 :(得分:11)

您不需要添加id,然后让jQuery解析选择器以找到该元素。你可以直接这样做:

$('#dates').append(
    $('<div class="'+classname+'">'+dd+'<br /><span class="month_selector">'+dm+'</span></div>')
    .click(function(){
      // handle click
    })
);

答案 1 :(得分:3)

你可以使用jquery ON ..你也可以使用类选择器代替id :),如$(".classname")

$('#dates').append('<div class="'+classname+'">'+dd+'<br /><span class="month_selector">'+dm+'</span></div>');

$('#dates').on('click','.'+classname, function(){
alert("on div click");
});

$('#dates').on('click','.month_selector', function(){
alert("on SPAN click");
});