解决jquery中动态新增的元素节点无法触发事件问题的两种方法_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触发ajax元素
jquery新增节点、ztree 新增节点并编辑、ztree新增节点、hadoop新增节点、zookeeper 新增节点,以便于您获取更多的相关知识。

时间: 2025-01-02 12:59:11

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

jquery中动态新增的元素节点无法触发事件解决办法

比如做一个ajax读取留言列表的时候,每条留言后面有个回复按钮,class为"reply",如果你用的是$(".reply").click(function(){ //do something... }),想必后面通过ajax加载进来的列表中的回复按钮,点击事件会失效. 其实最简单的方法就是直接在标签中写onclick="",但是这样写其实是有点low的,最好的方式还是通过给类名绑定一个click事件. 解决jquery中动态新增的元素节点无法触

jQuery Dialog 打开时自动聚焦的解决方法(两种方法)_jquery

下面给大家介绍两种方法解决jQuery Dialog 打开时自动聚焦问题.具体实现方法大家可以参考下本文. 方法一: p1_dialog_seniorSearch.dialog({ title:"高级查询", autoOpen:false,//默认关闭 modal: true,//开启遮罩层 width:570, height:330, buttons: { "查询":function(){ seniorSearch(1,20) } , "关闭"

JqueryMobile动态生成listView并实现刷新的两种方法_jquery

JqueryMobile动态生成listView并实现刷新的两种方法 复制代码 代码如下: function queryEntfernungen(tx, results)   alert("This Hello works");   var len = results.rows.length;     // This For works fine     for (var i = 0; i < len; i++) {       $("div[data-role=con

jQuery之浮动窗口实现代码(两种方法)_jquery

第一种方法:预览: Html代码 复制代码 代码如下: <html> <head> <title>浮动窗口</title> <link type="text/css" rel="stylesheet" href="css/overflow.css" /> <script type="text/javascript" src="js/jquery.js&

jquery判断页面网址是否有效的两种方法_jquery

方法一:(jQuery方法: 适用所有浏览器) HTML页面: <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <script type="text/javascript" src="js/jquery-1.7.1.min.js">&l

jQuery 获取、设置HTML或TEXT内容的两种方法_jquery

jQuery提供了两个API可以直接用来为元素添加内容. html() text() 其中html()是为指定的元素添加html内容 text()是为指定的元素添加文本内容 两者的区别在于,text中的内容是纯文本,不会被解析为html 如果要对如下html代码进行操作 复制代码 代码如下: <body> <p></p> </body> 使用html() 复制代码 代码如下: $('p').html('<strong>Hello World<

jquery实现全选、不选、反选的两种方法_jquery

在取复选框checkbox的属性checked属性值时,发现一个问题,就是当用attr取值时,真的为"checked",假的为"undefined";当用prop取值时,真的为"true",假的为"false".经过网上参考一些资料,及根据官方的建议这两个用法:具有 true 和 false 两个属性的属性,如 checked, selected 或者 disabled 使用prop(),其他的使用 attr(). 方法一:

Shell脚本中调用、引用、包含另外一个脚本文件的两种方法_linux shell

脚本 first (测试示例1) 复制代码 代码如下: #!/bin/bash echo 'your are in first file'  问)在当前脚本文件中调用另外一个脚本文件? 方法一: 使用 source 脚本 second (测试示例2) 复制代码 代码如下: #!/bin/bash echo 'your are in second file' source first 方法二: 使用 . 脚本 second (测试示例3) 复制代码 代码如下: #!/bin/bash echo '

PhotoShop解决不均匀曝光问题的两种方法

在正常的拍摄下,特别是外景,我们所拍摄出的来照片,曝光经常不准确(如曝光过度.曝光不足.曝光不 均匀等),我们现在来着重了解一下曝光不均匀的问题.通常在明亮的阳光下拍摄时,如果针对前景对象而不 是明亮的背景进行测光,那么会出现曝光过度问题.处理曝光过度图片有两个思路,第一个是尝试将曝光不足 的背景区域变成正常亮度,从而增加高光中的细节;另一个是让背景在图像中变得模糊,以突出前景. 在拍摄前景和背景的光比很大的场景时,要针对细节来对场景进行测光. 这时有三个选择:1.以前景为主,背景为次.2.背景