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

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

$('#dates').append('
'+dd+'
'+dm+'
');

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

是吗?

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

 $('#dates').append( $('
'+dd+'
'+dm+'
') .click(function(){ // handle click }) );

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

 $('#dates').append('
'+dd+'
'+dm+'
'); $('#dates').on('click','.'+classname, function(){ alert("on div click"); }); $('#dates').on('click','.month_selector', function(){ alert("on SPAN click"); });