dategate的用法

菜鸟教程上的说法是这样:

delegate() 方法为指定的元素(属于被选元素的子元素)添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数。

使用 delegate() 方法的事件处理程序适用于当前或未来的元素(比如由脚本创建的新元素)。

正常的使用方法: 【 点击div里的p标签时发生事件 】

$("div").delegate("p","click",function(){

    $("p").css("background-color","pink");

});

但是在解释中提到了" 适用于当前或未来的元素 " 

$(document).ready(function(){
// 在点击新增的p段落时 这段代码会生效
    $("html").delegate("p","click",function(){
        alert("这段会生效")
    })
// 这段不会生效
    $("p").on("click",function(){        
        alert("这段不会生效")
    }) 
//新增加的p标签 
    $(".addP").html("<p>新增的段落</p>")
});

" <p>新增的段落</p> " 就是未来的元素 , deletate会为他绑定上click事件 但是on却不能为未来的元素绑定事件

原文地址:https://www.cnblogs.com/Evaline/p/10715068.html