多平台统一管理软件接口,如何实现多平台统一管理软件接口
321
2023-07-10
动态生成的DOM不会触发onclick事件的原因及解决方法
最近朋友在做一个项目的时候,遇到动态加载微博内容,然后点击“展开评论”后获取该微博的所有评论。这里使用了动态加载的点击加载评论。
然后再写
$(“.get_comment).click(function(){
//响应事件逻辑
})
发现click事件并不会触发,使用控制台侦听也木有错误。百思不得其解时,
因为我在以前做搜狐家居商城的运费管理时,也曾遇到,因此将焦点落在动态加载上。
记得当时本人用的是行内事件,在动态加载时用的是行内事件。如 var oBtn = '删除'; 其实Freight为对象.delete_curr_citys为此对象的一个方法。
当然http://也可以使用jquery的live()函数,重写响应逻辑:
$(“.get_comment”).live(‘click', function() {
var mid = $(this).attr(“mid”);
alert(mid);
});
这时候,jquery可以响应span 的click事件了。这里用到live函数委派事件,主要用于动态生成的HTML的事件响应。关于live()函http://数的作用,它最直观的好处在于可以一直 “监听”客户端浏览器操作,对于新增的DOM节点也会有效,而不需要重新绑定。也许是因为这个“监听”可能会不断的去绑定、判断,会造成FQyxHZKcvweb应用性能问题,大家可以根据项目的复杂性选择性使用。关FQyxHZKcv于live函数,这里有非常详细的阐述:
定义和用法
live() 方法为被选元素附加一个或多个事件处理程序,并规定当这些事件发生时运行的函数。
通过 live() 方法附加的事件处理程序适用于匹配选择器的当前及未来的元素(比如由脚本创建的新元素)。
语法
$(selector).live(event,data,function)
参数 描述
event 必需。规定附加到元素的一个或多个事件。
由空格分隔多个事件。必须是有效的事件。
data 可选。规定传递到该函数的额外数据。
function 必需。规定当事件发生时运行的函数。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~