解决jquery中动态新增的元素节点无法触发事件问题的两种方法

 更新时间:2015年10月30日 14:36:05   投稿:lijiao  
这篇文章主要分享了解决jquery中动态新增的元素节点无法触发事件问题的两种方法,感兴趣的小伙伴们可以参考一下

比如做一个ajax读取留言列表的时候,每条留言后面有个回复按钮,class为“reply”,如果你用的是$(".reply").click(function(){ //do something... }),想必后面通过ajax加载进来的列表中的回复按钮,点击事件会失效。

其实最简单的方法就是直接在标签中写onclick="",但是这样写其实是有点low的,最好的方式还是通过给类名绑定一个click事件。

解决jquery中动态新增的元素节点无法触发事件的问题有两种解决方法,如下:

为了达到更好的演示效果,假设在某个页面的body下有以下结构的代码:

<p id="pLabel">新加一条</p>
<ul id="ulLabel">
 <li class="liLabel">aaa1</li>
 <li class="liLabel">aaa2</li>
 <li class="liLabel">aaa3</li>
</ul>
<script type="text/javascript">
$("#pLabel").click(function(){
 $("#ulLabel").append('<li class="liLabel">aaaQ</li>'); //动态像ul的末尾追加一个新元素
});
</script>

方法一:使用live

live()函数会给被选的元素绑定上一个或者多个事件处理程序,并且规定当这些事件发生时运行的函数。通过live()函数适用于匹配选择器的当前及未来的元素。比如,通过脚本动态创建的元素。

实现如下:

$('.liLabel').live('click', function(){
 alert('OK');
});

方法二:使用on

可以通过on方法绑定事件,可以绑定到它的父级或者body中,实现如下:

$("#ulLabel").on('click','.liLabel',function(){
 alert('OK')
});
或者:
$("body").on('click','.liLabel',function(){
 alert('OK')
});

现在大家可以尝试尝试,是不是问题已经得到解决了,希望这篇文章能够真正的帮助大家。

相关文章

  • jquery使用经验小结

    jquery使用经验小结

    本文给大家分享的是个人在使用jQuery的过程中总结的5点比较重要的知识点,这里推荐给小伙伴们,有需要的童鞋可以参考下。
    2015-05-05
  • jQuery圆形统计图开发实例

    jQuery圆形统计图开发实例

    这篇文章主要介绍了jQuery圆形统计图开发的方法,实例分析了circliful插件的用法与使用技巧,非常具有实用价值,需要的朋友可以参考下
    2015-01-01
  • jQuery 图像裁剪插件Jcrop的简单使用

    jQuery 图像裁剪插件Jcrop的简单使用

    目前做的这个项目中要用到用户头像功能,领导说最好是做成用户上传一个图片后可以用图像裁剪的方法自己选择头像。
    2009-05-05
  • jquery的冒泡事件的阻止与允许(三种实现方法)

    jquery的冒泡事件的阻止与允许(三种实现方法)

    冒泡或默认的事件发生,在某些时候是不需要的,在此就需要一些可以阻止冒泡和默认的事件的方法,本文介绍三种方法做到不同程度的阻止,感兴趣的朋友可以了解下,或许对你了解冒泡事件有所帮助
    2013-02-02
  • jQuery在vs2008及js文件中的无智能提示的解决方法

    jQuery在vs2008及js文件中的无智能提示的解决方法

    我通过下面方法实现了jQuery在VS2008及js文件中的智能提示的,希望对朋友们有所帮助。
    2010-12-12
  • 用jQuery获取table中行id和td值的实现代码

    用jQuery获取table中行id和td值的实现代码

    下面小编就为大家带来一篇用jQuery获取table中行id和td值的实现代码。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-05-05
  • jquery 选择器引擎sizzle浅析

    jquery 选择器引擎sizzle浅析

    用jquery的大概有一年了,只知道$(selector),其内部选择器是如何实现并不完全不清晰,汗颜啊于是看了jquery的源码,jquery用的选择器的引擎是sizzle,感兴趣的朋友可以了解下,或许本文对你有所帮助
    2013-02-02
  • 基于jquery创建的一个图片、视频缓冲的效果样式插件

    基于jquery创建的一个图片、视频缓冲的效果样式插件

    利用css和jquery创建一个动画效果的缓冲样式插件,插件可以开始、暂停、结束
    2012-08-08
  • jQuery 标题的自动翻转实现代码

    jQuery 标题的自动翻转实现代码

    我们平时在开发web程序的时候,想把一个新闻源滚动显示新闻的条目的标题及内容摘要,而且是每次一条,有点类似csdn的滚动广告。
    2009-10-10
  • jQuery搜索子元素的方法

    jQuery搜索子元素的方法

    这篇文章主要介绍了jQuery搜索子元素的方法,实例分析了children、find等方法的使用技巧,需要的朋友可以参考下
    2015-02-02

最新评论