如何为新注入的html附加jquery事件处理程序?

如何为新注入的html附加jquery事件处理程序?,jquery,event-handling,Jquery,Event Handling,如果HTML尚未生成,我将如何使用.on()?jQuery页面表示,如果将新HTML注入页面,请在将新HTML放入页面后选择元素并附加事件处理程序 但我真的不知道该怎么做。有没有办法“重新加载”事件处理程序 所以如果我有 $(document).ready(function(){ $('.test').on('click', function(){ var id = $(this).attr('id'); console.log("clicked" + i

如果HTML尚未生成,我将如何使用
.on()
?jQuery页面表示,如果将新HTML注入页面,请在将新HTML放入页面后选择元素并附加事件处理程序

但我真的不知道该怎么做。有没有办法“重新加载”事件处理程序

所以如果我有

$(document).ready(function(){
    $('.test').on('click', function(){
        var id = $(this).attr('id');
        console.log("clicked" + id);
    });
generatePage();
});
当generatePage()使用
.test
创建一组div时,如何重新绑定
.on()


我知道有人问过类似的问题,但在快速搜索后,我没有找到我要查找的内容。

使用.on,如下面的示例所示。可以假定body标记始终可用,因此可以安全地将事件处理程序附加到body并将事件委托给选择器,在本例中为。test

$(document).ready(function(){
    $('body').on('click', '.test', function(){ // Make your changes here
        var id = $(this).attr('id');
        console.log("clicked" + id);
    });

    generatePage();
});
或者,如果generatePage()也在生成html,则头部和身体标记将使用文档作为选择器

$(document).ready(function(){
    $(document).on('click', '.test', function(){ // Make your changes here
        var id = $(this).attr('id');
        console.log("clicked" + id);
    });

    generatePage();
});
根据。on接受以下参数:

.on( events [, selector] [, data], handler(eventObject) )
包括选择器如下所述:

当提供选择器时,事件处理程序称为 委派。当事件直接发生在上时,不调用处理程序 绑定元素,但仅适用于 匹配选择器。jQuery将事件从事件目标向上冒泡 到处理程序所附加的元素(即,最内层到 最外层的元素),并为沿着该元素的任何元素运行处理程序 与选择器匹配的路径

$(document).ready(function(){
    $(document).on('click', '.test', function(){ // Make your changes here
        var id = $(this).attr('id');
        console.log("clicked" + id);
    });

    generatePage();
});