jquery访问动态生成元素

最近在做留言板过程中 ,遇到一个问题:通过jq动态生成的元素无法绑定事件,上网 查资料得知,动态生成元素需要通过事件代理来实现

这里直接介绍我采用的on()方式实现 :

jQuery引入了全新的事件绑定机制,on()和off()两个函数统一处理事件绑定。因为在此之前有bind(), live(), delegate()等方法来处理事件绑定,jQuery从性能优化以及方式统一方面考虑决定推出新的函数来统一事件绑定方法并且替换掉以前的方法。
on(events,[selector],[data],fn)
events:一个或多个用空格分隔的事件类型和可选的命名空间,如"click"或"keydown.myPlugin" 。
selector:一个选择器字符串用于过滤器的触发事件的选择器元素的后代。如果选择器为null或省略,当它到达选定的元素,事件总是触发。
data:当一个事件被触发时要传递event.data给事件处理函数。
fn:该事件被触发时执行的函数。 false 值也可以做一个函数的简写,返回false。

eq:

$(‘.msgWrapper‘).on(‘click‘,‘.replyAction‘,function(){})

.msgWrapper为父元素选择器

‘click’为事件名称

‘.replyAction‘’为子元素选择器

function(){}:绑定的事件函数

如有表述不当,请不吝指出

.

时间: 2024-08-06 12:14:40

jquery访问动态生成元素的相关文章

JQuery中动态生成元素的绑定事件(坑死宝宝了)

今天在做项目的时候,遇到了一个前端的问题,坑了我好长时间没有解决,今天就记录于此,也分享给大家. 问题是这样的,首先看看我的界面,有一个初始印象: 下面是操作列所对应的JS代码: { "data": function (datas) { return "<a data-url='/Device/Edit?id=" + datas.Id + "' data-toggle='modal' class='btn btn-sm btn-default btn

jQuery获取动态生成的元素

需求描述:页面上可以动态添加数据,比如table,点击按钮可以动态添加行.又或页面 加载时table数据是通过ajax从后台获取的.而这时我们想要获取其中的某个值,又该如何获取呢? 如果是要通过某个事件来获取的比如click,mouseover等等,则可以使用live()方法 $(".button").live("click",function(){ console.info($("#mytd").html()); }) live()的详细说明参

动态生成元素动作绑定,jquery 1.9如何实现

1.7后增加了 live()1.9后被移除了 网上说可以用 on() 代替 可以实际在动态生成元素上绑定动作,没效果,求解绝方法(用低版本的jQuery这种方法,求别说..) 答: 之前有老兄回答过类似这个问题,我把他的写法给你贴一下吧: 你应该使用 on 事件进行绑定,这样新插入的元素就可以触发点击事件了.http://api.jquery.com/on/ $(function(){ $("body").on("click", '.a', function(){

DOM中动态创建元素与jQuery中动态创建元素

DOM中动态创建元素与jQuery中动态创建元素 DOM中动态创建元素: 1. document.write("标签的代码")    缺点:页面中原有的元素会被覆盖掉 2. innerHTML 3. document.createElement("标签的名称") jQuery中动态创建元素: 1. $("标签的代码") 2. 对象.html("标签的代码") 原文地址:https://www.cnblogs.com/david

jQuery对于动态生成的元素绑定无效的问题~~

问题:很多时候发现,对动态生成的元素绑定click事件是无效的- 原因:直接绑定到动态生成的元素是无效的,是因为Jquery扫描文档找出所有的$(‘’)元素,并把函数绑定到每个元素的click事件上,表明是现有页面上存在的元素,动态生成的元素不包括在内. 解决方法:代理或者说是委托on( ),实现原理是事件的冒泡,在指定的祖先元素中注册事件,元素事件触发,传播到这个元素然后进行筛选. 可以在祖先元素中绑定事件,比如div是祖先元素,而新生成的元素都是div的子元素,所以动态生成的元素的事件就可以

关于jQuery中动态生成的点击事件触发两次的讨论

由于是动态生成的  点击事件运用了jQuery里面的on()方法,绑定在body上面,结果在程序里面运行了两次.参考了博客 利用on和off方法编写高效的js代码知道了很多在dom对象删除以后,其声明的绑定在window上的事件还一直存在,导致相同的功能代码执行了几次.故使用之前要清理掉body上绑定的click事件,利用了jQuery里面off()方法. $('body').off('click').on('click','selector',function(){});

jQuery1.9之后使用on()绑定 动态生成元素的 事件无效

来自互联网: 需要绑定a的父级元素(此元素必须为静态元素,不是后来动态生成的),然后设定on()方法的selector参数才行: $('p').on('mouseenter', 'a', function(){ //.............. }); 也就是说<p>元素必须为页面加载的时候就有的,不是动态生成的.这样才行.

jquery动态生成元素的事件绑定

<html> <head> <meta charset="utf-8"> <meta name="view" content="width=device-width;user-scalable=no;initial-scale=1.0"> <script src="jquery.js"></script> <style> .image-host

[jquery] 给动态生成的元素绑定事件 on方法

用底下的方法尝试了好多次都失败 $('.del').on('click',function(){ alert('aa'); })// 失败!! 终于在准备放弃前看到一篇博文说的方法 $(document).on("click",'.del',function(){ alert('aa'); }); // 成功!!