• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

jQuery解决添加元素后不执行原有事件的方法

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

我们先来看下我的错误代码

html:

        <table border="1" id="best">
			<tr>
				<td>
					<button class="change">修改</button>
				</td>				
			</tr>
			<tr>
				<td>
					<button class="del">删除</button>
				</td>				
			</tr>
			<tr class="last"><td><button class="add">添加</button></td></tr>
		</table>

js:

$(".add").click(function(){
		var newYuansu = $("<tr><td><button class='del'>删除</button></td></tr>");
		$(".last").before(newYuansu);
})
$(".del").click(function(){
        $(this).parents("tr").remove();
})

而此时使用jQuery新加元素,新元素元素不会执行一部分原有的事件函数

博主是学生,也只是研究了一种方法:

$("#best").on("click",".del",function(){
		$(this).parents("tr").remove();
})

把原本的click事件这样写,就可在新加的元素使用,非常好用~

补充:

一、jquery1.3版本以下的(不包括jquery1.3),是时候更新你的jquery版本了。

因为 无解无解无解无解无解无解

二、如果jquery版本是在1.3-1.8之间的话,js/jq动态添加的元素触发绑定事件的解决方法(不建议用on事件,因为1.6版本以下不支持on事件,会报错)

绑定live事件(live事件只在jquery1.9以下才支持,高版本不支持)。

$(".del").live("click",function(){ ///jquery 1.9(不包括1.9)以下可以

               alert('这里是动态元素添加的事件');

           })

三、推荐使用on

如果jquery版本是在1.9或者更高的话,live委托事件是被移除的,通过on来实现。js/jq动态添加的元素触发绑定事件的解决方法

注意注意:如果页面同时存在低版本的jq(1.3-1.8)和高版本jq(jquery1.9以上)的话,live委托事件会被高版本移除,最后导致虽然有jquery版本是在1.3-1.8之间,使用了live事件,页面会报错。

到此这篇关于jQuery解决添加元素后不执行原有事件的方法的文章就介绍到这了,更多相关jQuery的内容请搜索极客世界以前的文章或继续浏览下面的相关文章希望大家以后多多支持极客世界!


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
vue实现手机验证码登录发布时间:2022-02-05
下一篇:
HTML+CSS+JavaScript创建一个简单的井字游戏发布时间:2022-02-05
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap