首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何实现动态添加元素添加点击事件

在页面开发过程中常常遇到需要动态添加元素,然后给这一元素绑定相关事件情况,这种情况下一般需要给元素加上相关属性,然后写这些元素事件函数即可。动态添加元素怎么绑定事件呢?...原生JavaScript 原生JavaScript主要有2种实现方式,第一种是在动态添加html代码中添加oclick事件,然后传递一个唯一参数来判断点击是哪个,然后做相应操作。...该事件附加到staticAncestors应处理元素静态父级 ( )。 每次在此元素或后代元素之一上触发事件时,都会触发此 jQuery 处理程序。...eventName, function(){} ); 可以替换为以下on()方法: $(document).on( eventName, selector, function(){} ); ---- 例如,如果您页面使用类名动态创建元素...,dosomething您会将事件绑定到已经存在父级(这是这里问题核心,您需要绑定到存在东西,不要绑定到动态内容),这可以(也是最简单选项)是document.

3.7K20
您找到你想要的搜索结果了吗?
是的
没有找到

JSjQuery获取不到动态添加元素节点解决方法

今天写了一个添加图片功能,要求右上角要有删除按钮,我使用 jQuery 动态添加方式。...发现后添加元素无法删除,打印显示 undefined ,原来 JavaScript 和 jQuery 无法获取动态添加元素节点。...解决方法: 动态添加标签要事件委托才能获取到节点,也就是说要用: $(selector).on(events,[selector],[data],fn) 属性解析: 参数 描述 events 一个或多个用空格分隔事件类型和可选命名空间...我们追加元素父节点添加事件委托,就调用里面子节点了: 举个栗子,我在 .sup-img-box 中添加了子节点 .cert-img 。...,这里要保证该父级节点不是动态添加,不然同样会获取不到。

6.8K10

Js - JQ事件委托( 适用于给动态生成脚本元素添加事件)

最近一段时间打了一个大仗,现在总算消停点,才有时间来做个总结吧算是: 移动端遇到一个项目,是一个列表侧滑栏,在我这里用jq写交互事件。自测各方面都挺好,美滋滋给了研发。...-----非故事分割线------------------------------------------------------------------———————— jq写了点击事件,是通过获取元素类名被点击后执行对应方法...,但是研发套完模板,他会把所有的结构先清空,导致jq根本找不到那个元素,所以事件就不得执行了。...正规点说:JS异步加载,JQ事件不被执行解决方法(百度标题,hah) jquery中动态新增元素节点无法触发事件问题(同上) 解决方法: ? ?...值得注意是:亲测此方法无效,可能是我用jq版本太高了,1.9多,已经不支持这个方法了 第二个方法: ? 但是缺点是:给一个元素添加多个事件委托机制时,他就挂了。  王者方法:on ?

4.8K50

【Vue原理解析】之异步与优化

= "Updated Message" // 强制组件重新渲染 this....当点击按钮时,会手动修改DOM元素内容,并通过调用$forceUpdate方法强制组件重新渲染。这样可以确保即使数据没有发生变化,也能强制刷新组件以更新视图。...当点击按钮时,会向items数组中添加一个新项。通过使用this.$set方法,我们可以确保新添加项是响应式,并能够触发视图更新。...该函数接受一个返回import()函数回调作为参数,用于动态导入组件文件。这样,在需要使用AsyncComponent组件时才会进行实际加载。...另:使用虚拟滚动(Virtual Scrolling)或分页加载等技术来处理大量数据列表,避免一次性渲染大量DOM元素

15220

元素可视区 client 系列

通过 client 系列相关属性可以动态得到该元素边框大小、元素大小等。 ? ? 2....1.a标签超链接 2.F5或者刷新按钮(强制刷新) 3.前进后退按钮 但是 火狐中,有个特点,有个“往返缓存”,这个缓存中不仅保存着页面数据,还保存了DOM和JavaScript状态;实际上是将整个页面都保存在了内存里...在重新加载页面中,pageshow会在load事件触发后触发;根据事件对象中persisted来判断是否是缓存中页面触发pageshow事件 注意这个事件给window添加。...DOM元素加载完毕再去设置body //字体大小 document.addEventListener( 'DOMContentLoaded', setBodyFontSize...( ' pageshow', function(e) {        // e. persisted 返回是true,从缓存取过来页面也要重新加载 重新计算rem大小 if (e

53230

浏览器特性

document.readyState 会返回一个字符串,它有以下几种可能: loading 表示正在加载; interactive 表示文档已被解析,"正在加载" 状态结束,但是诸如图像,样式表和框架之类子资源仍在加载... 元素 load 事件 动态生成 标签可以接受一个 onload 事件,表示脚本加载完成时会被触发。...重绘与重排 重排(reflow):重排也被称为 “回流”,根据字面意思就是重新布局页面。例如当我们改变了窗口尺寸或者元素尺寸发生变化时就有可能引发回流。...重绘(repaint):字面意思就是“重新绘制”,相较于重排,重绘对于页面的影响就小得多了,重绘并不会影响元素在文档中位置,例如改变字体颜色。...在 Content-Security-Policy 头部中指定策略有强制性 ,而Content-Security-Policy-Report-Only 中策略仅产生报告而不具有强制性。

1.3K10

浏览器层面优化前端性能(2):Reader引擎线程与模块分析优化点

从上一段也能推出,多个 async-script 执行顺序是不确定,谁先加载完谁执行。值得注意是,向 document 动态添加 script 标签时,async 属性默认是 true。...document.createElement使用 document.createElement 创建 script 默认是异步通过动态添加 script 标签引入 JavaScript 文件默认是不会阻塞页面的...在过去,如果你修改了body元素class属性,那么页面里所有元素都要重新计算样式。现代浏览器中不再这样做了,浏览器不会检查所有受到样式变化影响元素。...因为会对每个DOM元素维护一个独有的样式规则小集合,如果这个集合发生改变,才重新计算该元素样式。所以,样式计算一般是直接对那些目标元素执行。因此我们应该尽可能减少需要执行样式计算元素个数。...比如,你页面顶部有一个固定位置header,而此时屏幕底部有某个区域正在发生绘制的话,整个屏幕都将会被绘制。 注意:在DPI较高屏幕上,固定定位元素会自动地被提升到一个它自有的渲染层中。

1.1K20

Unity-Optimizing Unity UI(UGUI优化)04 UI Controls

以下是一些常需要关注与性能相关因素,在添加文字到UI时候,事实上被渲染成多个多边形。...如果一个新字形适合当前图集,它将被添加到图集并且图集并将重新加载到图形设备中。分两步执行。 首先,使用当前大小图集进行重建。...这有两种基本方式填充滚动视图: 一次性将滚动视图全部需要元素进行加载 缓存元素,在需要元素时候重新定位它们 这两种解决方案都会有一些问题。...这个组件确保了在重建Canvas时候,位于Scroll View之外元素不会被添加到绘制列表。...简单方法存在问题 任何被重新设置父节点或者调整在父节点下与兄弟节点顺序UI元和这个元素元素将会被标记为脏元素,并且强制重建他们Canvas。

3.4K20

元素可视区 client 系列

元素可视区 client 系列 1.1 client概述 client 翻译过来就是客户端,我们使用 client 系列相关属性来获取元素可视区相关信息。...通过 client系列相关属性可以动态得到该元素边框大小、元素大小等。 1.2....淘宝 flexible.js 源码分析 立即执行函数 (function(){})()  或者 (function(){}()) 主要作用: 创建一个独立作用域。...1.a标签超链接 2.F5或者刷新按钮(强制刷新) 3.前进后退按钮 但是 火狐中,有个特点,有个“往返缓存”,这个缓存中不仅保存着页面数据,还保存了DOM和JavaScript状态;实际上是将整个页面都保存在了内存里...在重新加载页面中,pageshow会在load事件触发后触发;根据事件对象中persisted来判断是否是缓存中页面触发pageshow事件 注意这个事件给window添加

42320

元素可视区 client 系列

1. client概述 client 翻译过来就是客户端,我们使用 client 系列相关属性来获取元素可视区相关信息。...通过 client 系列相关属性可以动态得到该元素边框大小、元素大小等。 ? ? 2....淘宝 flexible.js 源码分析 立即执行函数 (function(){})() 或者 (function(){}()) 主要作用: 创建一个独立作用域。...1.a标签超链接 2.F5或者刷新按钮(强制刷新) 3.前进后退按钮 但是 火狐中,有个特点,有个“往返缓存”,这个缓存中不仅保存着页面数据,还保存了DOM和JavaScript状态;实际上是将整个页面都保存在了内存里...在重新加载页面中,pageshow会在load事件触发后触发;根据事件对象中persisted来判断是否是缓存中页面触发pageshow事件 注意这个事件给window添加

49341

本地存储应用案例 ToDoList

删除数据 存储修改后数据,然后存储给本地存储 重新渲染加载数据列表 因为a是动态创建,我们使用on方法绑定事件 // 3.toDoList 删除操作    $("ol")...saveData(data);        // 重新渲染页面        load(); ​   }) 6、正在进行和已完成选项操作 当我们点击了小复选框,修改本地存储数据,再重新渲染数据列表...之后保存数据到本地存储 重新渲染加载数据列表 load 加载函数里面,新增一个条件,如果当前数据done为true 就是已经完成,就把列表渲染加载到 ul 里面 如果当前数据done...       saveData(data);        // 重新渲染页面        load();   }) 7、 统计正在进行个数和已经完成个数 在我们load 函数里面操作...= 0; //正在进行个数 ​        // 遍历数组,i是索引号,n是每一个数据 里面有几个元素添加几个小li        $.each(data, function (i, n)

2.3K20

如何使用浏览器工具调试PWA

你可能比较熟悉其中一些面板,比如控制台(Console)、元素面板(Elements)、网络(Network),因为你在构建网站和网络应用程序时候天天都在用。...清单中可以看到应用名字(首屏上简短名字),图表预览,以及一些展现细节。 启动地址:当用户从主屏首屏上启动Web应用是,设备要加载地址。您可以添加一个活动标识符来区分统计分析中PWA。...有效值包括「fullscreen」(打开应用时全屏展示)、「standalone」(显示设备标准状态栏和系统返回按钮)、「minimal-ui」(只有返回、前进、重新加载按钮)和「browser」(包括地址栏正常浏览器...通过此屏幕,您可以通过启用选项卡中离线复选框来强制离线模式: ? 强制离线模式,反映在应用程序中。 在设备模式屏幕下,离线也是强制,除网络节流。 重新加载更新:当调试时,这个非常有用。...长按二维码关注京程一灯,阅读更多技术文章和业界动态

3.5K40

toDoList案例分析

)方法 5.存储修改后数据,然后存储给本地存储 6.重新渲染加载数据列表 7.因为a是动态创建,我们使用on方法绑定事件 1.6 案例:toDoList 正在进行和已完成选项操作 1.当我们点击了小复选框...4.之后保存数据到本地存储 5.重新渲染加载数据列表 6.load 加载函数里面,新增一个条件,如果当前数据done为true 就是已经完成,就把列表渲染加载到 ul 里面 7.如果当前数据...done 为false, 则是待办事项,就把列表渲染加载到 ol 里面 1.7 案例:toDoList 统计正在进行个数和已经完成个数 1.在我们load 函数里面操作 2.声明2个变量 :todoCount...待办个数 doneCount 已完成个数 3.当进行遍历本地存储数据时候, 如果 数据done为 false, 则 todoCount++, 否则 doneCount++ 4.最后修改相应元素...// 遍历之前先要清空ol里面的元素内容 $("ol, ul").empty(); var todoCount = 0; // 正在进行个数

1.3K30

2020年,vue面试遇到问题(中)

答:阻止事件默认行为 具体操作:监听你想点击后不会丢失 input 焦点那个元素 mousedown 事件,回调里面调用 event.preventDefault(),会阻止使当前焦点丢失这一默认行为...答:将静态资源存放位置放在src目录下 16、怎么解决vue动态设置imgsrc不生效问题?.../assets/images/logo.png"), }; } 因为动态添加src被当做静态资源处理了,没有进行编译,所以要加上require 17、跟keep-alive有关生命周期是哪些?...$forceUpdate v-if 当v-if值发生变化时,组件都会被重新渲染一遍。...push、splice、pop等方法改变数组元素时并不会触发数组setter,继而数组数据变化并不是响应式,但是vue实际开发中却是实时响应,是因为vue重写了数组push、splice、pop

1.9K30

JavaScript基础学习--02属性操作

属性动态修改。     解决办法:点击后将input type=‘button’隐藏,显示checkbox即可。...nowrap; 处理元素空白,只在一行内显示(不换行)。           ...法3:通过class类添加与减少判断。推荐! 三、其他要点: 1、表单提交按钮input和button、a差异和选择。      ...但是例如延时执行、ajax异步加载看起来像是“多线程”,其实是“回调”,类似于操作系统中“中断和响应”,比如ajax异步加载,代码执行到ajax部分时,代码中断并开始往下执行,当ajax请求数据返回时...,再“回调”执行ajax(此时中断其他正在执行代码《如果有正在执行代码的话》),最后再执行剩余代码。

1.8K90

Web页面全链路性能优化指南

,如果有则判断缓存是否过期,如果没过期则直接返回缓存内容,也就是图1中【HTTP Cache】步骤 如果没有强制缓存或者缓存已过期,则将该请求加入队列进行排队准备发送网络请求,也就是图2中【正在排队】,...目前前端处理服务端响应html请求主要分为SSR服务端渲染与CSR客户端渲染,CSR就是返回一个空HTML模版,然后浏览器加载js后通过js动态渲染页面。...Reflow 重排:重排在Chrome Performance中叫做布局,通常添加或删除元素、修改元素大小、移动元素位置、获取位置信息都会触发页面的重排,因为重排可能会改变元素大小位置等信息,这样改变会影响到页面大量其它元素大小位置信息...强制同步布局问题 在同一个函数内,修改元素后又获取元素位置时会触发强制同步布局,影响渲染性能。...如何减少重排与重绘 脱离文档流(绝对定位、固定定位),脱离文档流元素进行重排不会影响到其他元素。 图片渲染时增加宽高属性,宽高固定后,图片不会根据内容动态改变高度,便不会触发重排。

39211
领券