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

为什么在同一页面上添加innerHTML后切换类不起作用

在同一页面上添加innerHTML后切换类不起作用的原因是因为innerHTML会重新渲染整个页面的HTML结构,这会导致之前已经绑定的事件和类失效。

具体来说,当使用innerHTML添加新的HTML内容时,浏览器会将原有的HTML结构完全替换掉,包括其中的元素、事件和类。因此,之前已经绑定的事件和类将会被移除,新添加的HTML内容不会继承之前的事件和类。

解决这个问题的方法有多种,以下是一些常见的解决方案:

  1. 使用事件委托:将事件绑定到父元素上,通过事件冒泡的机制来处理子元素的事件。这样即使通过innerHTML添加了新的HTML内容,事件仍然能够被正确地处理。
  2. 使用事件代理库:例如jQuery的.on()方法或者Zepto的.delegate()方法,它们可以帮助我们在动态添加的元素上绑定事件。
  3. 在添加innerHTML之后重新绑定事件:在使用innerHTML添加新的HTML内容后,手动重新绑定需要的事件。这样可以确保新添加的元素也能够正确地响应事件。
  4. 使用其他方法替代innerHTML:可以考虑使用其他方法来添加HTML内容,例如createElement()、appendChild()等。这些方法不会重新渲染整个页面,而是直接在DOM中添加新的元素,不会影响已有的事件和类。

总结起来,同一页面上添加innerHTML后切换类不起作用的原因是因为innerHTML会重新渲染整个页面的HTML结构,导致之前已经绑定的事件和类失效。为了解决这个问题,可以使用事件委托、事件代理库、重新绑定事件或者使用其他方法来添加HTML内容。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

PowerBI中的书签和导航,如何选择呢?

2020 年 3 月的更新中,按钮有了一个名为"导航"的新功能: ? 那么我们该如何在“导航”和“书签”之间做出选择呢?...当前 筛选器的状态 切片器,包括切片器类型和切片状态 可视化对象的选择状态,比如高亮的筛选器 排序 钻取状态 可视化对象是否隐藏 可视化对象的层次 可视化对象聚焦模式 所以呢,如果我们要在同一个页面上...不过,要在两个页面中进行来回切换,由于目前有了导航,我们就需要来分析一下这两种方式不同的场景中的优缺点了: 1.严格地多个页面之间切换 当我们要做地仅仅从一个页面切换到另一个页面,比如有一个导航栏...,你可能会使用一些花哨的布局(如可滚动页面、选项卡式导航、弹出窗口等)时,页面导航将不起作用。...当你面临同一个页面上的多个可视化对象,一会隐藏这个显示那个,一会隐藏那个显示这个,你会选择创建一堆书签来切换,还是复制多个页面来实现?

6.7K31

【Web技术】913- 谈谈你对前端路由的理解

1、为什么会出现前端路由。 2、前端路由解决了什么问题。 3、前端路由实现的原理是什么。 我们带着这三个问题,继续往下看,阅读的过程中如果同学们有自己的见解,可以评论区发表自己的看法。...简单说就是浏览器输入网址发起请求,返回来的 HTML 页面是最终呈现的效果,那就是 DOM 直出。并且每次点击页面跳转,都会重新请求 HTML 资源。耳听为虚,眼见为实。...“瞎了”的同学,我再教一个方法,就是浏览器页面右键,点击“显示网页源代码”,打开如下所示: ?...image.png 脱去所有的凡尘世俗,最本真的单项目运行形式便是如此。注意,我要点题了啊!!! ? 既然单页面是这样渲染的,那如果我有十几个页面要互相跳转切换,咋整!!??...image.png **解决思路:**我们可以通过遍历页面上的所有 a 标签,阻止 a 标签的默认事件的同时,加上点击事件的回调函数,回调函数内获取 a 标签的 href 属性值,再通过 pushState

61920

你好,谈谈你对前端路由的理解

1、为什么会出现前端路由。 2、前端路由解决了什么问题。 3、前端路由实现的原理是什么。 我们带着这三个问题,继续往下看,阅读的过程中如果同学们有自己的见解,可以评论区发表自己的看法。...简单说就是浏览器输入网址发起请求,返回来的 HTML 页面是最终呈现的效果,那就是 DOM 直出。并且每次点击页面跳转,都会重新请求 HTML 资源。...单页面 时代进步,科技发展,面对日益增长的网页需求,网页开始走向模块化、组件化的道路。随之而来的是代码的难以维护、不可控、迭代艰难等现象。...既然单页面是这样渲染的,那如果我有十几个页面要互相跳转切换,咋整!!??这时候 前端路由 应运而生,它的出现就是为了解决单页面网站,通过切换浏览器地址路径,来匹配相对应的页面组件。...解决思路: 我们可以通过遍历页面上的所有 a 标签,阻止 a 标签的默认事件的同时,加上点击事件的回调函数,回调函数内获取 a 标签的 href 属性值,再通过 pushState 去改变浏览器的 location.pathname

96920

iOS iOS与html进行交互

然后点击下一的按钮 通过js的响应显示另一个网页          最后通过下一的按钮可以返回到首页。     本文仅仅是h5跟ios 的交互的入门 所以没有做细致的描述。...我这边采用的方式是:通知传值的方式 思路: webviewVC的界面初始化的时候就要把通知加上 然后 登录成功之后  发送通知 将值传给h5 //添加一个通知 等着需要传值给html的时候就用这个通知...最近发现了wkwebview  这个是ios8之后出来的,就在#import 这个里边就包含了这个wkwebview这个,wkwebview继承于uiview 特点...() { //这里已经调用过来了 但是搞不明白为什么alert方法没有响应 //alert('我是上面的小黄 手机号是:13300001111...,如果是电脑桌面上就可以用没有注释的路径,根据实际情况来。

2.3K100

从零玩转系列之微信支付实战PC端装修我的订单页面 | 技术创作特训营第一期

本篇完毕将是UniApp的篇章感受移动端的诱惑 本次为前端知识点如果不懂前段可以去仓库直接copy出来使用,如果有什么问题可以评论区留言,我会第一时间回复大家的.关注我不迷路,如果本篇文章对你有所帮助...参数: orderInfo:OrderInfo的实例,代表订单信息,包含查询条件。 pageQuery:PageQuery的实例,代表分页信息(页码、每页大小等)。...注意:代码中的注释提到,作业添加新的查询条件,如状态、订单号、商品名称和订单创建时间。...必须传一个,不然组件无法判断总页数;优先使用 page-count; 如果传入了 current-page,必须监听 current-page 变更的事件(@update:current-page),否则分页切换不起作用...大家点赞支持一下哟~ 【选题思路】 "技术源于生活" 为什么写微信支付这种项目的文章呢? 因为我看到市面上的文章都不全面不细节不小白话更加没有配套Demo!!!

495111

Android魔术系列:一步步实现对折页面

在这个函数中,根据当前的position中Adapter中获取了三个(或者两个,当处于开始或最后时)view缓存起来,并且缓存的三个view都添加到了页面上。...至于为甚么将三个view都添加到页面中,而不是只添加当前页面,是因为后面实现切换效果需要,这个后面会解释到。...这就是前面为什么要将三个缓存的Item都添加到布局中的原因,因为只有添加到屏幕上才能将内容截屏出来。...所以我们截屏对Bitmap处理可操作性大很多,这也是为什么mAnimationView一定要在最顶层覆盖其他View的原因。...先绘制阴影,阴影区域是与区域3同一部分,采用简单的方法,完全覆盖区域1或区域2即可。 然后再去绘制区域3,这样可以覆盖阴影部分。

87530

横竖屏切换导致页面频繁重启?详细解读 screenLayout

前言 前几天多名用户反馈同一个问题,小新平板上无法上网课,点击上课按钮就退回到首页了。忠诚了解了一下发现小新平板现在销量特别好,于是赶紧申请了一台测试机打算看看到底是什么问题。...但是为什么在其他设备上没问题,唯独小新平板上有问题呢?而且为什么添加了screenLayout就解决问题了,这其中的原理是什么?我非常好奇,于是自己研究了一下。...小新平板 那么为什么小新平板上会有不同的现象,android:configChanges中添加screenLayout完onConfigurationChanged函数中debug获取screenLayout...所以没添加screenLayout的时候就会导致Activity重启,添加就可以了。 至于为什么重启Activity会导致回退到首页,其实是用户表述问题,现象是应用重启了。...当从详情打开上课页面时,会通过代码手动将竖屏切换到横屏(同时为了返回详情时换回竖屏,详情手动切换回竖屏)。

3K30

前端高频面试题汇总(一)

这种模型通过attachEvent 来添加监听函数,可以添加多个监听函数,会按顺序依次执行。DOM2 级事件模型,该事件模型中,一次事件共有三个过程,第一个过程是事件捕获阶段。...DllPlugin,不用每次都重新构建externals 和 DllPlugin 解决的是同一问题:将依赖的框架等模块从构建过程中移除。...项目中,一般beforeEach这个钩子函数中进行路由跳转的一些信息判断。判断是否登录,是否拿到对应的路由权限等等。为什么需要浏览器缓存?...为什么说 DOM 操作耗时1.1 线程切换浏览器为了避免两个引擎同时修改页面而造成渲染结果不一致的情况,增加了另外一个机制,这两个引擎具有互斥性,也就是说某个时刻只有一个引擎在运行,另一个引擎会被阻塞...操作系统进行线程切换的时候需要保存上一个线程执行时的状态信息并读取下一个线程的状态信息,俗称上下文切换

51950

(VUE!jQuery!插件!)盘点前端群的无脑回答

某路人:每一个div有两个,click表示被点。每次点一个div,循环遍历全部div重置状态为test,然后把被点的那个变成click。...后端不帮我分页,前端分页怎么容易一点 问题少年:是个人中心来的,数据不多,而且用户一般都会一去浏览全部数据的,因为这些消费数据必须全部看一遍才能了解到情况 路人甲:拿到全部数据,根据每页数据和第几页...= list[currentIndex-1] current.innerHTML = currentIndex } 时间测试: 用户切换页面的时候时间消耗 按需循环: 提前分页: 随着分页越来越多...,提前分页切换的时间上的优势越来越大。...数组向头部添加元素,concat和一个个unshift那个效率高 路人甲:unshift,毕竟它是专门头部添加的,concat是连接数组的,算法肯定比unshift复杂,es6的…算是淘汰了concat

1.7K20

(VUE!jQuery!插件!)盘点前端群的无脑回答0.前言总结

某路人:每一个div有两个,click表示被点。每次点一个div,循环遍历全部div重置状态为test,然后把被点的那个变成click。...后端不帮我分页,前端分页怎么容易一点 问题少年:是个人中心来的,数据不多,而且用户一般都会一去浏览全部数据的,因为这些消费数据必须全部看一遍才能了解到情况 路人甲:拿到全部数据,根据每页数据和第几页...= list[currentIndex-1] current.innerHTML = currentIndex } 复制代码 时间测试: 用户切换页面的时候时间消耗 按需循环: ?...随着分页越来越多,提前分页切换的时间上的优势越来越大。当然,正常的情况下用户一般都不会把全部数据都浏览完的,所以一般也是用按需分页更好。...数组向头部添加元素,concat和一个个unshift那个效率高 路人甲:unshift,毕竟它是专门头部添加的,concat是连接数组的,算法肯定比unshift复杂,es6的…算是淘汰了concat

1.6K40

javaScript的常见document对象

document.alinkColor //激活链接(焦点在此链接上)的颜色 document.vlinkColor //已点击过的链接颜色 document.URL //设置URL属性从而在同一窗口打开另一网...//已点击过的链接颜色 document.body.text //文本色 document.body.innerText //设置body>…/body>之间的文本 document.body.innerHTML...document.body.onmouseout=”func()” //鼠标指针移出对象时触发 ——————————————————————— location-位置子对象 document.location.hash // #号的部分...号的部分 documeny.location.reload() //刷新网页 document.location.reload(URL) //打开新的网页 document.location.assign...document.images.name属性.src d)创建一个图象 var oImage oImage = new Image() document.images.oImage.src=”1.jpg” 同时面上建立一个

86851

BOM和DOM

history.forward() // 前进一,其实也是window的属性,window.history.forward() history.back() // 后退一 location对象...提示框(了解即可)     提示框经常用于提示用户进入页面前输入某个值。     当提示框出现,用户需要输入某个值,然后点击确认或取消按钮才能继续操纵。     ...class的操作 className 获取所有样式名(字符串)首先获取标签对象 标签对象.classList.remove(cls) 删除指定 classList.add(cls) 添加...classList.contains(cls) 存在返回true,否则返回falseclassList.toggle(cls) 存在就删除,否则添加,toggle的意思是切换,有了就给你删除,如果没有就给你加一个...清空option c.innerHTML = ""; //清空显示市的那个select标签里面的内容    //4.循环所有的市,然后添加到显示市的那个select标签中 for

52410

H5学习之路之Web存储解决方案

那么今天我们说的是H5才提出的存储方案:localStorage和sessionStorage 首先说一下为什么需要这个东西,为什么之前已经有了cookie但是H5的时候却在客户端存储这块重新定义了这两部分呢...若想在不同页面之间对同一个sessionStorage进行操作,这些页面必须在同一协议、同一主机名和同一端口下。...(IE 8和9存储数据仅基于同一主机名,忽略协议(HTTP和HTTPS)和端口号的要求) 2) 单标签限制。...sessionStorage操作限制单个标签中,在此标签进行同源页面访问都可以共享sessionStorage数据。 3) 只本地存储。...seesionStorage的数据不会跟随HTTP请求一起发送到服务器,只会在本地生效,并在关闭标签清除数据。

66910
领券