Jquery 动态添加元素并添加点击事件实现过程解析
给动态添加的元素添加js事件,不能直接添加js事件,需要借助on( )方法,给选择器指定的子元素添加事件处理函数,并非选择器本身;
1. 语法
$(selector).on(event,childSelector,data,function) // event _ 需要添加的js事件 //childSelector _ 只能添加到指定的子元素上的事件处理程序 //data _ 调用函数时需要传递的参数 // function _ js函数发生时触发的事件
2. 实例
//html代码 <div id="div1" style="border:1px solid black;"></div> <script type="text/javascript"> //在id为div_link的元素中动态追加a $("#div1").html('<a id="div_link">链接点击</a>'); //触发通过js动态添加的超链接a $("#div1").on("click", "#div_link", function(){ //点击id为div_link时调用的处理函数 }); </script>
3. 相关概念:事件冒泡、事件捕获,默认为事件冒泡
事件冒泡:从子元素到祖先元素触发事件的执行; 子元素绑定了click事件,当点击子元素时,浏览器会向上查找绑有click事件的父、祖先元素,如有就执行;默认为事件冒泡;
事件捕获:从点击的元素到子元素执行触发的相同的事件;当某个元素中绑定了click事件时,点击此元素,浏览器会向下查找绑有click事件的子、后代元素,如有就执行点击事件;
代码:
//第一个参数:所绑定的事件; //第二个参数:触发事件后执行的方法; //第三个参数:决定是事件冒泡-false还是事件捕获-true;默认为false-事件冒泡; elem.addEventListener("click", function(){ ...... }, boolean);
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
jquery无法为动态生成的元素添加点击事件的解决方法(推荐)
遇到 jquery无法为动态生成的元素添加点击事件,谷歌一下,整理一下解决方法如下: (<li>中间的元素是动态生成的), 现在想为<i>添加点击事件, 例子如下: <div> <ul> <li> <span> <i class='icon'>这是元素内容</i> //i是动态生成 </span> </li> </ul> </div> 解决方法如下: $(docu
-
jquery mobile动态添加元素之后不能正确渲染解决方法说明
jquerymobile动态添加元素之后有些不能被正确渲染的解决方法:listview: 添加 jq(".detail").listview("refresh");div或其他:添加.trigger( "create" );====================================================================== jqm在初始化页面时会根据data-xxx在各元素中插入jqm的属性和类等.在页面初
-
jQuery给动态添加的元素绑定事件的方法
本文实例讲述了jQuery给动态添加的元素绑定事件的方法.分享给大家供大家参考.具体分析如下: jquery中绑定事件一般使用bind,或者click,但是这只能是对已经加载好的元素定义事件,那些后来添加插入的元素则需要另行绑定.在1.7版本以前使用live.但是在1.8版本以后推荐使用on.这里介绍jQuery中如何给动态添加的元素绑定事件 在实际开发中会遇到要给动态生成的html元素绑定触发事件的情况 例如 <div id="testdiv"> <ul>&l
-
jQuery动态添加元素无法触发绑定事件的解决方法分析
本文实例讲述了jQuery动态添加元素无法触发绑定事件的解决方法.分享给大家供大家参考,具体如下: 最近遇到一个问题,即当用jquery动态添加元素后,发现给动态添加的元素却无法触发事件.后来在网上查阅了一些资料,发现原来要这样处理: 先上我出错的代码: <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></ti
-
jquery动态添加带有样式的HTML标签元素方法
如下所示: <table class="exhibit_table" style="font-size:13px; text-align:left;"> <tr> <td style="width:80px;" align="right">上传计划单</td> <td style="padding:10px;"><input type=&qu
-
jquery动态添加元素事件失效问题解决方法
今天在写JQUERY时遇到个问题:当使用脚本动态添加元素xxx时,但事件$(".x .y").click(function)...失效问题. 刚开始网上找到了用live函数,方法如下: 事件绑定:$(".x .y").click(function) 需改为: 复制代码 代码如下: $(".x .y").live('click',function); 但是由于1.8版本后live这种方法不再支持,所以需要用下述jquery中on方法解决脚本动态添加
-
jQuery实现为动态添加的元素绑定事件实例分析
本文实例讲述了jQuery实现为动态添加的元素绑定事件.分享给大家供大家参考,具体如下: 在使用jquery的方式为元素绑定事件时,我经常使用bind或者click,但这只能为页面已经加载好的元素绑定事件.像需要用ajax的方式请求远程数据来动态添加页面元素时,显然以上几种绑定事件的方式是无效的,具体写法如下. $(selector).bind(event,data,function) $(selector).click(function) $("#searchMoveVideoResult u
-
jQuery如何获取动态添加的元素
一.问题描述 用jQuery的append()方法动态添加了一段html代码之后,发现在为新添加的元素绑定click事件时无法获取该新元素. 二.解决方法 度娘推荐的方法基本是用live()方法 live()的官方定义和用法: live() 方法为被选元素附加一个或多个事件处理程序,并规定当这些事件发生时运行的函数.通过 live() 方法附加的事件处理程序适用于匹配选择器的当前及未来的元素(比如由脚本创建的新元素). live()的详细使用方法可以查看jQuery live() live()和
-
jquery append 动态添加的元素事件on 不起作用的解决方案
用jquery添加新元素很容易,面对jquery append 动态添加的元素事件on 不起作用我们该如何解决呢?on方法中要先找到原选择器(如例.info),再找到动态添加的选择器(如列.delete). 具体不多说了,请看下面的代码吧. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <h
-
Jquery 动态添加元素并添加点击事件实现过程解析
给动态添加的元素添加js事件,不能直接添加js事件,需要借助on( )方法,给选择器指定的子元素添加事件处理函数,并非选择器本身: 1. 语法 $(selector).on(event,childSelector,data,function) // event _ 需要添加的js事件 //childSelector _ 只能添加到指定的子元素上的事件处理程序 //data _ 调用函数时需要传递的参数 // function _ js函数发生时触发的事件 2. 实例 //html代码 <div
-
jQuery动态添加元素后元素注册事件失效解决
目录 前言: 近日丢酱在学jQuery,在学习的时候遇到了一个问题,虽然最后解决了,但是丢酱觉得要把这个问题解决的方法记录下来,这样有小伙伴遇到同样的问题就不会跟我一样解决好久啦.我先贴一段正常逻辑的代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible&quo
-
解决jQuery ajax动态新增节点无法触发点击事件的问题
在写ajax加载数据的时候发现,后面添加进来的demo节点元素,失去了之前的点击事件.为什么点击事件失效,我们该怎么去解决呢? 其实最简单的方法就是直接在标签中写onclick="",但是这样写其实是有点low的,最好的方式还是通过给类名绑定一个click事件. 解决jQuery ajax动态新增节点无法触发事件问题的两种解决方法,为了达到更好的演示效果,假设在某个页面的body下有以下结构的代码: <ul id="demo"> <li class
-
vue动态渲染svg、添加点击事件的实现
业务需求(vue项目中) 1.页面展示svg内容 2.监听svg内部的点击事件 3.动态改变svg内部元素的属性和值 html标签 经多次实验,用embed.img等标签改变src属性的方式,均无法实现上述全部功能(尤其是svg内部点击事件),最终采用Vue.extend()方法完整实现,代码也较为简洁,html结构如下: <template> <div> <div id="svgTemplate"></div> </div>
-
jQuery解决添加元素后不执行原有事件的方法
我们先来看下我的错误代码 html: <table border="1" id="best"> <tr> <td> <button class="change">修改</button> </td> </tr> <tr> <td> <button class="del">删除</button> &l
-
Android自定义Notification添加点击事件
前言 在上一篇文章中<Notification自定义界面>中我们实现了自定义的界面,那么我们该怎么为自定义的界面添加点击事件呢?像酷狗在通知栏 有"上一首","下一首"等控制按钮,我们需要对按钮的点击事件进行响应,不过方法和之前的点击设置不一样,需要另外处理,下面我将进行简单的说明. 实现 同样,我们需要一个Service的子类MyService,然后在MyService的onCreate中设置,如下代码: public class MyService
-
vue实现动态给id赋值,点击事件获取当前点击的元素的id操作
:id绑定 :id="'a_'+index" 输出的id为a_0,a_1..... <div v-for="(item,index) in list" :key="index" > <div :id="'a'+index" @click="b(index)">哈哈哈</div> </div> 然后在vue的实例中就可以拿到对应的id b(index){ thi
随机推荐
- angular4实现tab栏切换的方法示例
- jquery 删除cookie失效的解决方法
- vue + socket.io实现一个简易聊天室示例代码
- Java中Date类和Calendar类的常用实例小结
- 用Python脚本生成Android SALT扰码的方法
- python利用正则表达式提取字符串
- 四种Android数据存储方式
- JavaScript运动框架 解决防抖动问题、悬浮对联(二)
- SQL Server 2016正式版安装配置过程图文详解
- jQuery菜单插件superfish使用指南
- javascript性能优化之DOM交互操作实例分析
- 详解Android进程保活的方法
- 比较discuz和ecshop的截取字符串函数php版
- Android笔记之:CM9源码下载与编译的应用
- 分析Android App中内置换肤功能的实现方式
- 浅谈ASP中的类
- C#使用Region对图形区域构造和填充的方法
- iOS开发教程之UIView和UIViewController的生命周期详解
- 简单了解node npm cnpm的具体使用方法
- 如何写好一个vue组件,老夫的一年经验全在这了(推荐)