这篇文章主要为大家展示了“如何使用JavaScript单例模式实现自定义弹框”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用JavaScript单例模式实现自定义弹框”这篇文章吧。
自定义弹框标题
自定义弹框内容
自定义弹框确认和关闭时的回调函数
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单例模式实现自定义弹框”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。