如何在jquery中为新附加的div添加click事件?

sil*_*abu 0 html javascript css jquery

这是我的HTML

 <div id="main">
    <div class="submit">welcome</div>
 </div>
Run Code Online (Sandbox Code Playgroud)

这是我的jquery

 $(".submit").click(function()
 {
     $("$main").append('<div class="submit">welcome</div>');

 });
Run Code Online (Sandbox Code Playgroud)

这里发生了什么事情正在为第一个div工作.这个事件不适用于新添加的div?

怎么解决这个?

Dav*_*mas 5

您有两个选项,委托(指定父级检测到的点击处理程序):

$('#main').on('click', 'div.submit', function(){
    // this is your click-handler
});
Run Code Online (Sandbox Code Playgroud)

或者通过在元素创建点绑定click-handler:

$(".submit").click(function() {
    $('<div />', {
        'class' : 'submit',
        'on' : {
            'click' : function(){
                // this is your click-handler
            }
        }).appendTo('#main');

});
Run Code Online (Sandbox Code Playgroud)

显然,如果你有一个要调用的命名函数,你可以分配它而不是使用匿名函数:

$('#main').on('click', 'div.submit', namedFunctionToCall);
Run Code Online (Sandbox Code Playgroud)

要么:

$(".submit").click(function() {
    $('<div />', {
        'class' : 'submit',
        'click' :  namedFunctionToCall
        }).appendTo('#main');

});
Run Code Online (Sandbox Code Playgroud)

参考文献: