单击动态生成的跨度

Click a span that was generated dynamically

我按以下方式编辑了一个字符串,使用 2 个带有 class 跨度的数字将其包装起来。 之后,我想在单击具有 class 的元素后执行一些操作。 以下代码不起作用。为什么?

var str="Hello, how are you?";
var start=2;
var end=5;
str=wrap(str,start,end);

$("#somewhere").html(str);

$(".blue").on("click",function(){
    alert("done");
});

function wrap(str,start,end) {
    var sx=str.substring(0,start);
    var wr=str.substring(start,end);
    var dx=str.substring(end,str.length);
    var ret=sx+"<span class='blue'>"+wr+"</span>"+dx;
    return(ret);
}

你可以使用

$('body').on('click', 'span.blue' , function(){})

看看Event binding on dynamically created elements?