核心知识点:

  鼠标事件:

onmousemove  鼠标移上  onmouseleave 鼠标移开

(注意区别开onmouseover和 onmouserout以及onmouseenter)

const spanIdelememt: any = []
for (var i = 0; i < spanElement.length; i++) {if (spanElement[i].getAttribute('data-mce-id')) {spanIdelememt.push(spanElement[i])const divdom = document.createElement('div')spanElement[i].onmousemove = (e: any) => {if (this.indexFlag === e.target.attributes[1]?.value) {return false;}// if (this.domIsEdit !== undefined && this.domIsEdit === true) {//   return false;// }const parme = {elemParentId: e.target.attributes[1].value}this.indexFlag = e.target.attributes[1].valuereportHttp.getElement(parme).then(res => {if (res.length <= 0) {if (e.target.attributes[1]) {if (e.target.attributes[1].value) {return false;}} else {this.$message.warning('该节点暂无子节点')}return;}var reportElems:any = ''reportElems = ['<select style="height:auto;border:1px;width: 100%;overflow: hidden;box-shadow:2px 2px 2px 2px #ddd;outline:none;appearance:none; -moz-appearance:none; -webkit-appearance:none; border-radius:0px;  background: #fafafa; line-height: 20px; padding-left: 10px; padding-right: 16px; z-index: 1;">'];reportElems.push('<option value="0" selected="selected" style="display: none;"></option>')for (var i = 0; i < res.length; i++) {reportElems.push("<option class='layui-customer-dl' parent_id='" + res[i].elemId + "' value='" + res[i].nodeName + "'>" + res[i].nodeName + '</option>');}reportElems.push('</select>');// 替换      divdom.innerHTML = ''divdom.style.background = ''divdom.style.display = ''divdom.innerHTML = reportElems.join('') // 将数组元素拼接成字符串 赋值给dom元素e.target.appendChild(divdom) // 添加子元素 appendChild必须为元素divdom.style.position = 'absolute'divdom.style.left = e.offsetX - 10 + 'px'if (this.currentPatInfo) {if (this.currentPatInfo.processStatus === 5 || (this.currentPatInfo.processStatus === 4 && !this.docRole)) {divdom.style.display = 'none'// return false;} else {divdom.style.display = 'block'}}     that.getDomElementconst('select')[0].setAttribute('size', 0)divdom.style.background = '#ddd'that.getDomElementconst('select')[0].setAttribute('size', res.length)that.getDomElementconst('select')[0].onchange = (value :any) => {this.indexFlag = ''const index = value.target.selectedIndexconst dataId = value.target.options[index].getAttribute('parent_id')e.target.innerHTML = '<span data-mce-class="a__b" data-mce-id=' + e.target.attributes[1].value + '>' + value.target.options[index].value + '<span/>'}})}spanElement[i].onmouseleave = (e: any) => {divdom.remove()this.indexFlag = ''}}
}

~~~

JS 编辑器动态添加select 鼠标划过显示下拉列表相关推荐

  1. 原生js清空上一个元素内容_原生JS实现动态添加新元素、删除元素方法

    1. 添加新元素 动态添加新元素 Coffee Tea Coffee Tea var child = document.getElementsByClassName("child" ...

  2. 【UE】Slate编辑器动态添加Button

    前言 实现编辑器动态添加界面元素,例如button之类的 效果 实现 .h文件添加定义 .cpp文件实现逻辑 界面排版 TSharedRef<SDockTab> FDynamicCreat ...

  3. js动态添加html元素绑定事件,JS实现动态添加DOM节点和事件的方法示例

    本文实例讲述了JS实现动态添加DOM节点和事件的方法.分享给大家供大家参考,具体如下: 运行效果图如下: 完整实例代码如下: /p> "http://www.w3.org/TR/xht ...

  4. js中动态添加/插入HTML代码块,并通过JQuery动态绑定点击事件

    文章目录 前言 一.场景需求还原 二.代码示例 1.引入JQuery库 2.代码示例 一:HTML中div标签部分 二:HTML中script标签部分 三:JS文件部分 总结 前言 本篇文章中讲的是在 ...

  5. [html] 写一个类似刮刮卡效果的交互,即鼠标划过时显示号码

    [html] 写一个类似刮刮卡效果的交互,即鼠标划过时显示号码 <title>Document</title> <style> *{ margin:0; paddi ...

  6. 原生js 给动态添加的元素添加(事件监听器)

    原生js (事件监听)和(动态添加元素) 给动态添加的元素添加点击事件 <!DOCTYPE html> <html><head><meta charset=& ...

  7. JS实现动态添加和删除div

    实现方式一:只在最后一个数据中动态添加或者删除 | 背景 需要做一个页面,页面可以输入参数,点击确认按钮可以发请求给某接口.但是接口的某个字段是数组类型,所以在页面上需要实现添加或者删除元素的功能. ...

  8. html追加没有样式,js/jquery动态添加html,样式和方法不生效的解决方案

    var html = " " + " " + " \n" + " \n" + " \n" + &qu ...

  9. js 关于动态添加class样式的学习

    如果,我这里有一个需求.如下的页面代码 <body> <input type="button" value="红" id="btn1 ...

最新文章

  1. zcmu1713(模拟)
  2. 记-php的设计模式
  3. eclipse 重构_Eclipse对类固醇的重构
  4. python类实例覆盖_避免类实例覆盖默认值
  5. 解放你的双手-Sql Server 2000智能提示工具[破解版]
  6. delphi 获取webbrowser文本框id内数值_分布式 ID 生成策略
  7. Java 故障安全异常处理
  8. 【DP专题】LintCode刷题笔记
  9. idea登录页面ajax验证,IDEA如何实现登录注册页面 IDEA实现登录注册页面代码示例...
  10. python微信api_微信公众平台 Python 开发包文档
  11. Anima Toon:体素角色动画软件
  12. 基于PHP服装购物网站的设计与实现
  13. 语音外呼机器人邀请用户对营业厅评价
  14. JVM笔记(三)类与类加载
  15. LabelImg打开图片报错:Error opening file
  16. Spring学习笔记(二)
  17. 苹果平板怎么卸载软件_苹果手机怎么装第三方软件
  18. HTML_07 —— style属性和样式
  19. 软件加密系统Themida应用程序保护指南(十):高级选项
  20. 在ESXi界面给虚拟机配的内核数与虚机内任务管理器显示数不一致

热门文章

  1. 项目配置不当引发了数据泄露,人已裂开!!(建议收藏)
  2. 智能手表产业迎来潜在的市场空间
  3. 中世纪开始在英语里也用作Affrike指非洲
  4. 怎么修改图片的kb大小?如何缩小照片kb?
  5. coreldraw x4离线激活_coreldraw x4怎么激活 coreldraw x4注册机使用方法
  6. phpfilter的妙用
  7. 解决ModuleNotFoundError: No module named ‘celery.five‘的问题
  8. 正确使用GPU服务器gpu服务器和普通服务器的不同之处
  9. 简单批处理文件使用win7自带wifi,妈妈再也不担心WiFi软件不稳定了
  10. 【日记本砸】21.06.11-20 复杂的式子和角标只是一个符号一个标记而已