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

时间:2012-02-08 07:26:19

标签: 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>

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

3 个答案:

答案 0 :(得分: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' ); });

试试。

编辑:

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

$('.RmMe').on('click', function () {
    alert("OK");
});
祝你好运!

答案 1 :(得分:3)

尝试使用.onDoc

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

答案 2 :(得分:1)

你必须使用

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

因为在创建DOM时该元素不存在,所以在之后插入它并且您不能将click绑定到不存在的元素。 .live为您添加了一个事件监听器,这使您可以轻松实现所需的任务。