JavaScript单例模式实现自定义弹框

发布时间:2022-04-16 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了JavaScript单例模式实现自定义弹框脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

本文实例为大家分享了JavaScript单例模式实现自定义弹框的具体代码,供大家参考,具体内容如下

功能

@H_304_4@
  • 自定义弹框标题
  • 自定义弹框内容
  • 自定义弹框确认和关闭时的回调函数
  • 完整代码

    const DiaLOG = (function () {
     class Dialog {
       constructor () {
         this.ele = document.createElement('div')
         this.ele.classname = 'dialog'
         document.body.apPEndChild(this.ele)
         this.callback = null
         this.setEvent()
       }
     
       setContent ({ text, topicText, confirmText, cancelText } = options) {
         this.ele.innerHTML = null
         const top = document.createElement('div')
         top.className = 'top'
         const topic = document.createElement('span')
         topic.className = 'topic'
         topic.innerHTML = topicText
         const close = document.createElement('span')
         close.className = 'close'
         close.innerHTML = '×'
         top.appendChild(topic)
         top.appendChild(close)
         const middle = document.createElement('div')
         middle.className = 'middle'
         const content = document.createElement('div')
         content.className = 'content'
         content.innerHTML = text
         middle.appendChild(content)
         const bottom = document.createElement('div')
         bottom.className = 'bottom'
         const confirm = document.createElement('button')
         confirm.className = 'confirm'
         confirm.innerHTML = confirmText
         const cancel = document.createElement('button')
         cancel.className = 'cancel'
         cancel.innerHTML = cancelText
         bottom.appendChild(confirm)
         bottom.appendChild(cancel)
         const wrap = document.createElement('div')
         this.ele.appendChild(top)
         this.ele.appendChild(middle)
         this.ele.appendChild(bottom)
         this.ele.style.display = 'block'
       }
     
       setEvent () {
         this.ele.addEventListener('click', e => {
           e = e || window.event
           const target = e.target || e.srcElement
           if (target.className === 'close') {
             this.ele.style.display = 'none'
             console.log('close')
           }
           if (target.className === 'confirm') {
             this.ele.style.display = 'none'
             this.callback(true)
           }
           if (target.className === 'cancel') {
             this.ele.style.display = 'none'
             this.callback(false)
           }
         })
       }
     }
     let instance = null
     return function (options, cb) {
       if (!instance) instance = new Dialog()
       instance.setContent(options)
       instance.callback = cb || function () {}
       return instance
     }
     })()
     
     const dialog = new Dialog({
     text: '提示文字',
     topicText: '标题',
     confirmText: '确定',
     cancelText: '取消'
     }, res => { console.log(res) })

    效果图

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本宝典。

    脚本宝典总结

    以上是脚本宝典为你收集整理的JavaScript单例模式实现自定义弹框全部内容,希望文章能够帮你解决JavaScript单例模式实现自定义弹框所遇到的问题。

    如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

    本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
    如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
    标签:jsjs弹框"