jQuery技术

jQuery如何获取动态添加的元素

字号+ 作者:H5之家 来源:H5之家 2017-12-04 15:03 我要评论( )

这篇文章主要介绍了jQuery如何获取动态添加的元素的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下

一、问题描述

  用jQuery的append()方法动态添加了一段html代码之后,发现在为新添加的元素绑定click事件时无法获取该新元素。

二、解决方法

  度娘推荐的方法基本是用live()方法

  live()的官方定义和用法:

  live() 方法为被选元素附加一个或多个事件处理程序,并规定当这些事件发生时运行的函数。通过 live() 方法附加的事件处理程序适用于匹配选择器的当前及未来的元素(比如由脚本创建的新元素)。

  live()的详细使用方法可以查看jQuery live()

 live()和bind()的区别就是live不仅可以给页面中现有的元素绑定事件,还可以给将来动态添加进来的元素绑定时间。

  于是我用live()替换了bind(),但报出了新错误:TypeError: $(...).live is not a function

  经过查询以后发现,原来是jQuery 1.9及其以上已经无法使用live(),可以用on()方法代替live().

  on()的官方定义和用法:

  on() 方法在被选元素及子元素上添加一个或多个事件处理程序。自 jQuery 版本 1.7 起,on() 方法是 bind()、live() 和 delegate() 方法的新的替代品。

  注意:使用 on() 方法添加的事件处理程序适用于当前及未来的元素(比如由脚本创建的新元素)。

   on()的详细使用方法可以查看jQuery on()

三、代码演示

html页面:

<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>jQuery on()方法测试</title> </head> <body> <button>Click me!</button> <p>Hello,</p> <script src="js/jquery.min.js"></script> <script src="js/test.js"></script> </body> </html>

test.js:

$().ready(function(){ $("#click1").bind("click",function(){ $("p").append("<div><b>I'm clicked!</b></div>"); }); //on方法要先找到原选择器(p),再找到动态添加的选择器(.new) $("p").on("click",".new",function(){     $(this).remove(); }); });

  test.js中第6行实现了为动态添加的.new元素绑定click事件。应注意的是,虽然是为.new绑定事件,但on()方法却是绑定在原选择器<p>上的,然后将.new放在了参数列表中,原理参照上文on()的官方定义和用法。

  以上便是所有内容,如有需要修改或补充的地方,欢迎交流。

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • jquery动态创建form表单,jqueryform表单

    jquery动态创建form表单,jqueryform表单

    2017-11-16 10:00

  • JQuery动态隐藏和显示DIV

    JQuery动态隐藏和显示DIV

    2017-09-14 10:01

  • 使用jQuery动态加载js脚本文件的方法

    使用jQuery动态加载js脚本文件的方法

    2017-09-05 10:04

  • 3.9 技巧:使用jQuery动态生成HTML

    3.9 技巧:使用jQuery动态生成HTML

    2017-09-02 10:00

网友点评
f