处理jQuery中附加元素的click事件

Edd*_*ark 25 jquery append onclick

我使用以下方法在页面中生成了一些元素.例如,

$("#button"+caption).click(function(){
        var firstDisplay = '<div id="firstDisp'+caption+'"><ul>';
        for(var i=0;i<parents.length;i++){
            firstDisplay=firstDisplay+'<li class="fClick">'+parents[i]+'</li>';
        }
        firstDisplay=firstDisplay+'</ul></div>';
        $(firstDisplay).dialog();
});
Run Code Online (Sandbox Code Playgroud)

当我为'fClass'创建一个onclick事件时,如下所示:

$(".fClick").click(function(){
    alert("hey!");
}); 
Run Code Online (Sandbox Code Playgroud)

它不起作用!但是,如果我把onclick函数放在其他函数中,就在.dialog()之后,它就可以工作了!我有很多以这种方式创建的元素,所以我不能将所有onclick事件放在一个方法中.有没有办法解决?我也遇到了与.append方法相同的问题.

Sel*_*gam 69

将其更改为.on.delegate基于您正在使用的jQuery版本..

截至jQuery 1.7+

$(document).on('click', '.fClick', function(){ 
    alert("hey!");
}); 
Run Code Online (Sandbox Code Playgroud)

对于较旧的jQuery版本,请使用委托

$(document).delegate('.fClick', 'click', function(){
    alert("hey!");
}); 
Run Code Online (Sandbox Code Playgroud)