JQuery给动态添加的元素绑定事件

Posted 程序员爱学习

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JQuery给动态添加的元素绑定事件相关的知识,希望对你有一定的参考价值。

在实际项目中,我们常常会动态的给界面Append元素,动态添加的元素如果要绑定某个事件,我们可以使用JQuery提供的 on()方法

定义和用法
on() 方法在被选元素及子元素上添加一个或多个事件处理程序。
自 jQuery 版本 1.7 起,on() 方法是 bind()、live() 和 delegate() 方法的新的替代品。该方法给 API 带来很多便利,我们推荐使用该方法,它简化了 jQuery 代码库。
注意:使用 on() 方法添加的事件处理程序适用于当前及未来的元素(比如由脚本创建的新元素)。
提示:如需移除事件处理程序,请使用 off() 方法。
提示:如需添加只运行一次的事件然后移除,请使用 one() 方法。

语法
$(selector).on(event,childSelector,data,function)

实例

下面是动态添加的元素不能触发事件的例子

 1<!DOCTYPE html>
2<html>
3<head>
4<script src="https://cdn.bootcss.com/jquery/1.10.2/jquery.min.js">
5
</script>
6<script>
7$(document).ready(function(){
8  $(".testBtn").click(function(){
9       alert("按钮被点击了");
10  });
11  $("#main").append("<button class='testBtn'>按钮</button");
12});
13
</script>
14</head>
15<body>
16    <div id="main"></div>
17</body>
18</html>

上面例子中,点击动态append的按钮,并不会触发点击事件。

现在,我们使用Jquery的on()方法,下面例子中,点击按钮,可以正常触发点击事件。

 1<!DOCTYPE html>
2<html>
3<head>
4<script src="https://cdn.bootcss.com/jquery/1.10.2/jquery.min.js">
5
</script>
6<script>
7$(document).ready(function(){
8  $("#main").on("click",".testBtn",function(){
9       alert("按钮被点击了");
10  });
11  $("#main").append("<button class='testBtn'>按钮</button");
12});
13
</script>
14</head>
15<body>
16    <div id="main"></div>
17</body>
18</html>


参考文档:http://www.runoob.com/jquery/event-on.html

以上是关于JQuery给动态添加的元素绑定事件的主要内容,如果未能解决你的问题,请参考以下文章

jQuery动态创建的元素为啥不能绑定事件

jQuery给动态添加的元素绑定事件的方法

jQuery 判断元素上是不是绑定了事件

jQuery给动态添加的元素绑定事件的方法

jQuery对 动态添加 的元素 绑定事件(on()的用法)

jQuery给动态添加生成的元素绑定事件的方法