<div>中<div>中的.click()不起作用

X10*_*0nD 0 javascript jquery

$('#A').click(function () {
    $('#A1').prepend('<div class="AcL" id=' + i + '>Hello<span class="RmMe" id="' + i + '" style="margin-left:20px; cursor:pointer;">X</span></div>');
    i++;
});

$('.RmMe').click(function () {
    alert("OK");
});

<div id="A1"></div>
Run Code Online (Sandbox Code Playgroud)

知道为什么点击不起作用?

Bar*_*man 9

您需要使用.delegate().live()因为您尝试将处理程序绑定到尚不存在的元素.

$('#A').click(function() {
    $('#A1').prepend('<div class="AcL" id='+i+'>Hello<span class="RmMe" id="'+i+'" style="margin-left:20px; cursor:pointer;">X</span></div>');
    i++;        
});

$('.RmMe').live('click', function() { alert( 'OK' ); });
Run Code Online (Sandbox Code Playgroud)

试试吧.

编辑:

但是,如果您使用的是jQuery 1.7+,则该.on方法是首选方法:请参阅xdazz的帖子

$('.RmMe').on('click', function () {
    alert("OK");
});
Run Code Online (Sandbox Code Playgroud)

祝好运!

  • 绝对不**`.live()`**,而`.delegate()`,并且如果jQuery的版本是> = 1.7,然后`.对()`是解决方案. (3认同)
  • @BarryChapman:可能,但它应该是答案的一部分(否则答案本身并不像投票所暗示的那样有价值). (2认同)