背景:需要给动态生成的元素添加点击事件处理程序的时候,用传统的onclick()方法不生效;
原因:在绑定事件的时候选择器只会选择页面中已经存在的元素,所以动态生成的元素是绑定不了事件的。

那么可以通过事件委托 on() 开解决这个问题;这里还涉及了一个概念:事件冒泡。

  1. on():在选择元素及子元素上绑定一个或多个事件处理函数。

语法:

$(selector).on(event,childSelector,data,function,map)

参数

描述

event

必需。规定要从被选元素移除的一个或多个事件或命名空间。由空格分隔多个事件值。必须是有效的事件。

childSelector

可选。规定只能添加到指定的子元素上的事件处理程序

data

可选。规定传递到函数的额外数据。

function

可选。规定当事件发生时运行的函数。

map

规定事件映射 ({event:function, event:function, …}),包含要添加到元素的一个或多个事件,以及当事件发生时运行的函数。

demo1:向 p元素添加 click 事件处理程序:

$("p").on("click",function(){
alert("The paragraph was clicked.");
});

demo2:给下图中的a标签“删除”添加点击事件

jquery点击事件写法 jquery加点击事件_点击事件

$('.category-wrap').on('click','.row-product-category.now .delete',function(e){
        console.log($(this).parent().parent());
        $(this).parent().parent().remove();
    });

补充:停止事件冒泡的方法

.stopPropagation()