使用事件代理解决v-html点击事件无效
v-html是vue中用来将string形式的html内容按普通HTML插入的命令 - 并且插入的内容不会作为 Vue 模板进行编译 。
项目中遇到的问题:
vue用v-html命令解析带有html标签的内容,a标签内有点击事件(格式:<a @click='test()'>我是a标签</a>),但是采用v-html解析标签时会导致点击事件失效
就是前面提到的v-html的特性:将添加进去的@click事件按string形式插入,没有作为 Vue 模板进行编译。
解决方法:
vue代码如下:
1 2 3 | <div @click= "eventTemp" > <span v-html= "content" ></span> </div> |
1 2 3 4 5 6 7 8 | eventTemp(e){ //在判断事件目标节点的时候,考虑到兼容性应该统一转换成大写或小写进行判断 if (e.target.localName.toLowerCase() === 'a' ) { // 通过判端目标节点以后,就能在这里对其进行操作啦。 let id = e.target.getAttribute( 'data-id' ) //获取a标签属性,我这里自定义了一个属性data-id并将id赋值给了该属性,如何需要获取click方法的参数,需要获取a标签的click属性,并手动解析获取里面的参数 this .customFormGet(id); //调用点击事件方法 } }, |
分类:
Vue开发相关
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix