当前位置: 首页 > news >正文

中国水利教育培训网站宁夏做网站公司

中国水利教育培训网站,宁夏做网站公司,优化大师有必要安装吗,网站平台建设实训体会一、场景 背景#xff1a;因为系统里经常有新活动或者公告需要通知所有用户#xff0c;希望前端维护的这个弹窗里的内容可以由后端接口返回。这样就不需要每次上新活动的时候#xff0c;前端项目都发版了。因此#xff0c;前端维护了这个弹窗和它的关闭事件#xff0c;至…一、场景 背景因为系统里经常有新活动或者公告需要通知所有用户希望前端维护的这个弹窗里的内容可以由后端接口返回。这样就不需要每次上新活动的时候前端项目都发版了。因此前端维护了这个弹窗和它的关闭事件至于弹窗里展示什么内容则由接口返回。问题后端返回了展示的HTML里有一个按钮希望点击这个按钮时可以关闭弹窗。如下图的交叉按钮 二、解决方案 考虑到需求的历史背景以及后续的可维护性。决定在后端返回的HTML里给期望关闭弹窗的按钮添加上ID。而在前端项目里弹窗加载完成并且接口已经返回数据后我们可以通过ID获取到用于关闭弹窗的按钮元素然后给这个按钮添加一个点击事件监听器。当用户点击该元素时会触发关闭弹窗的函数。 三、代码演示 Step1. 前端项目里存放着弹窗弹窗里的内容通过读取接口返回的 html 赋值给content然后通过v-html 呈现。将关闭弹窗的函数写在此处下面仅展示一些核心的实现代码Vue3Vuetify templatev-dialogv-modelvisiblev-card div v-htmlcontent/div/v-card/v-dialog /templatehandleClose() {this.visible false }Step2. 此时接口返回一段JSON用于页面呈现。里面可能包含了一个按钮用于关闭这个弹窗我们需要给这个按钮添加上ID下图里的id\close-btn\与后续的步骤关联。 {content: div\n a type\button\\n span class\v-btn__content\ id\close-btn\关闭/span\n /a\n /div,startTime: 2023-12-01 00:00:00,endTime: 2024-2-29 00:00:00 }Step3. 在前端项目里弹窗加载完成并且接口已经返回数据后我们可以通过ID获取到用于关闭弹窗的按钮元素然后给这个按钮添加一个点击事件监听器。当用户点击该元素时会触发关闭弹窗的函数。 document.getElementById(close-btn)?.addEventListener(click, this.handleClose)四、可能存在的坑点 需要等接口的数据返回并且生成了相关的元素以后才能对按钮添加事件监听。否则会监听不到这个元素。验证过程如下 !DOCTYPE html html langenheadmeta charsetUTF-8meta http-equivX-UA-Compatible contentIEedgemeta nameviewport contentwidthdevice-width, initial-scale1.0title验证节点未生成时添加事件监听是否有效/title!-- 这个案例证明了给一个不存在的节点通过指定ID的方式添加事件监听是无效的即使之后会往页面上生成同样id的元素 --!-- 因此一定要确保元素已经在页面上挂载了才去添加事件监听 --/headbodydiv idparentbuttonidcreate生成新按钮/button/divscript/*** 创造一个新的元素**/function createNewNode() {const parentElem document.getElementById(parent)const newElem document.createElement(button)newElem.textContent 新按钮newElem.setAttribute(id, new)parentElem?.insertBefore(newElem, document.getElementById(create))document.getElementById(new)?.addEventListener(click, function () {newNodeOnClick(按钮生成后)})}/*** 新元素被点击时触发* param timing 点击的时机**/function newNodeOnClick(timing) {console.log(newNodeOnClick, timing)}document.addEventListener(DOMContentLoaded, function (e) {document.getElementById(create)?.addEventListener(click, createNewNode)document.getElementById(new)?.addEventListener(click, function () {newNodeOnClick(页面加载完毕后)})})/script/body /html
http://www.hkea.cn/news/14345250/

相关文章:

  • 科学做视频网站在线开发app
  • 解析网站怎么做微模板网站建设
  • 网站建设与数据库管理wordpress阶梯插件
  • 参与网站建设与维护的要求wordpress font awesome
  • 网站建设唯美谷网站怎么建设网站最便宜
  • 做一个个人主页的网站怎么做电脑可以做网站服务器吗
  • 网站服务器的选择村网站开设两学一做栏目
  • 上海网络公司网站注册公司怎么注册
  • 做电商要注册网站吗个人做外贸的网站那个好做
  • 网站设计与开发wordpress分类目录优化
  • 不需要备案的域名wordpress 优化seo
  • 做招聘网站wordpress原生app
  • 摄影网站难做吗兼职网网站建设方案建议书
  • asp做购物网站培训
  • 针织衫技术支持东莞网站建设代理服务器ip免费
  • 个人网站模板 免费做宣传图册在什么网站
  • 360网站怎么做ppt软件开发工程师招聘简章
  • 高端定制网站开发建站教程详解小程序开发模板源码
  • 哪个网站可以做兼职ppt模板邯郸最近发生的重大新闻
  • 这么做钓鱼网站wordpress和shopex
  • 做国内打不开的网站长沙网站搭建关键词排名
  • 唐山网站公司建站阿里巴巴网站做推广效果怎么样
  • 有关做粪污处理设备的企业网站腊肉网站的建设前景
  • 网站白名单查询网站怎么获得流量
  • 商丘高端网站建设怎样进行seo
  • 开通网站主机网站设计说明范文
  • 局域网wordpress建站网络推广项目代理
  • 电商公司建设网站网站广告网络推广价格低
  • 南昌做网站建设哪家好欧美风格网站模版
  • 一站式做网站企业网页版qq登录入口官网手机