捕获动态生成的警报框的单击事件


Catching a click event for a dynamically generated alert box

我正在生成一些Twitter引导警报消息,我想删除我已阅读的警报消息,只留下我喜欢进一步调查的消息。

这就是我生成它们的方式

$a =  $this->session->userdata('identity');
    $ar = trim($a,",");
    $arr = explode(',', $a);
    foreach($arr as $key => $value){
    echo '<div class="cb alert alert-warning"><a href="#" class="close" data-dismiss="alert" data-array-key="'.$key.'">&times;</a><strong>Warning!</strong> '.$value.' </div>' .'<br/>';
    }

这是我的jquery代码

(function ($) {
$( ".close" ).on('click', function() {
alert('close clicked');
});
})(jQuery);

我知道我的代码有效,因为它适用于 jsfiddle http://jsfiddle.net/15oar2gr/

为什么我的代码不适用于动态生成的内容?

试试这个

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

尝试事件委派,如下所示:

$( "body" ).on('click','.close', function() {
   alert('close clicked');
});

如果您将点击事件更改为:

$(document).on('click', '.close', function () {});

它会起作用的。