JavaScript添加HTML语句时事件失效问题

JavaScript添加HTML语句时事件失效问题

十月 08, 2019 阅读数(请刷新)

一、问题分析

当我们使用js语法向页面中添加html语句时,经常会出现添加的html语句中绑定的事件无法执行,这是因为当js,css加载后才添加的html语句,这样在js事件加载时去找绑定的选择器(id,class),发现并不存在,因此点击事件会失效。

二、解决方案

使用jQuery 事件 - delegate() 方法
使用 delegate() 方法的事件处理程序适用于当前或未来的元素(比如由脚本创建的新元素)。
语法
$(selector).delegate(childSelector,event,data,function)

举例:
点击事件失效:

1
2
3
$(".x-show").click(function(){
alert("111");
});

点击事件有效:

1
2
3
$("body").delegate('.x-show',"click",function () {
alert("111");
});