jquery如何给动态生成的页面元素添加事件
示例
$("body").on("click","input[name='abc']",function(){
alert("这个新生成的input被点击了~~")
});
$(“第一个被选中的元素是准备绑定事件的元素的父级元素(不是必须body)”).on(“事件”,“选中动态元素元素”,function(){ 方法体 });
所以上方代码的意思是在body内name=“abc"的input元素的click事件被赋予了alert了一段内容。
* on内选中动态元素的方式和普通的$(”")选中是一样的。
原理
一个未生成的元素是无法直接绑定事件的,但是它的父级元素可以绑定,以上的可行性在于元素生成在body内 body一直存在, on绑定的事件是读取body内的内容,上方示例内容里当有点击事件产生时会校验是不是input[name=‘abc’]来决定调不调用方法体。
理解要点
- 普通的$(" ").click(function(){ }); 是给一个确定的元素绑定一个事件;
- $(“body”).on( " ", " ",function(){ });是分配事件给body范围内符合选中条件的某个元素;
- 对于body,on就是一个触发(由“事件”触发并检查到body内符合条件的元素赋予一个function)的事件,body从开始便存在,所以不受到动态元素在网页加载时还未生成的原因所影响;