向尚未创建的div添加单击侦听器

时间:2014-05-20 10:10:52

标签: jquery append onclicklistener

当我单击一个div时,我通过jQuery将(在某些条件下)另一个div附加到文档中。我想为这个新的div创建一个点击监听器。以下是代码和 fiddle

<div class="test">click me!</div>

<script type="text/javascript">
$('.test').click(function() 
{
    $(document.body).append('<div class="close">close</div>');
});

$('.close').click(function() 
{
    $('.test').hide();
    alert('close clicked');
});

</script>

我的目标是向close div注册一个点击监听器,以处理将来的点击,但是如果尚未创建div,它似乎不起作用。我能怎么做?我想避免在每次close创建后注册一个点击监听器。提前谢谢。

1 个答案:

答案 0 :(得分:2)

使用on()使用事件委派,它将使事件工作在动态添加的html:

$(document).on('click','.close',function() 
{
    $('.test').hide();
    alert('close clicked');
});

UPDATED FIDDLE