无法在动态创建的内容上设置单击事件处理程序

bbr*_*ges 6 jquery

我有一些像这样的代码:

$('.play').on( 'click', function(){
    console.log('click');
});
Run Code Online (Sandbox Code Playgroud)

.play元素是使用$('.game').html('<span class="paly">Play</span>')方法动态创建的.但是,当我点击此跨度时,我的控制台日志中没有任何内容.我究竟做错了什么?

谢谢.

PS:我正在使用jQuery 1.7.1

Ror*_*san 12

不要使用live()- 它已被弃用.而是使用on(),但在父元素上使用它来委托事件,如下所示:

$('#parentOfPlay').on('click', '.play', function(){
    console.log('click');
});
Run Code Online (Sandbox Code Playgroud)

  • 是 - 虽然它是动态内容,但它应该是最近的非动态内容元素.如果使用`document`,您可能会看到性能下降. (3认同)