$('#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>
知道为什么点击不起作用?
答案 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为您添加了一个事件监听器,这使您可以轻松实现所需的任务。