EventListener使用element封装的兼容方法替代

This commit is contained in:
马云海 mayunhai () 2019-05-28 11:37:11 +08:00
parent 054ed40e07
commit 8d505bc0a0
13 changed files with 59 additions and 37 deletions

View File

@ -7,6 +7,8 @@
</template>
<script>
import { on, off } from 'element-ui/src/utils/dom'
export default {
name: 'BackToTop',
props: {
@ -45,10 +47,10 @@ export default {
}
},
mounted() {
window.addEventListener('scroll', this.handleScroll)
on(window, 'scroll', this.handleScroll)
},
beforeDestroy() {
window.removeEventListener('scroll', this.handleScroll)
off(window, 'scroll', this.handleScroll)
if (this.interval) {
clearInterval(this.interval)
}

View File

@ -1,4 +1,5 @@
import { debounce } from '@/utils'
import { on, off } from 'element-ui/src/utils/dom'
export default {
data() {
@ -12,15 +13,15 @@ export default {
this.chart.resize()
}
}, 100)
window.addEventListener('resize', this.__resizeHandler)
on(window, 'resize', this.__resizeHandler)
this.$_sidebarElm = document.getElementsByClassName('sidebar-container')[0]
this.$_sidebarElm && this.$_sidebarElm.addEventListener('transitionend', this.$_sidebarResizeHandler)
on(this.$_sidebarElm && this.$_sidebarElm, 'transitionend', this.$_sidebarResizeHandler)
},
beforeDestroy() {
window.removeEventListener('resize', this.__resizeHandler)
off(window, 'resize', this.__resizeHandler)
this.$_sidebarElm && this.$_sidebarElm.removeEventListener('transitionend', this.$_sidebarResizeHandler)
off(this.$_sidebarElm && this.$_sidebarElm, 'transitionend', this.$_sidebarResizeHandler)
},
methods: {
// use $_ for mixins properties

View File

@ -7,6 +7,7 @@
<script>
import Dropzone from 'dropzone'
import 'dropzone/dist/dropzone.css'
import { on, off } from 'element-ui/src/utils/dom'
// import { getToken } from 'api/qiniu';
Dropzone.autoDiscover = false
@ -145,7 +146,7 @@ export default {
})
if (this.couldPaste) {
document.addEventListener('paste', this.pasteImg)
on(document, 'paste', this.pasteImg)
}
this.dropzone.on('success', file => {
@ -165,7 +166,7 @@ export default {
})
},
destroyed() {
document.removeEventListener('paste', this.pasteImg)
off(document, 'paste', this.pasteImg)
this.dropzone.destroy()
},
methods: {

View File

@ -22,6 +22,7 @@
// make search results more in line with expectations
import Fuse from 'fuse.js'
import path from 'path'
import { on, off } from 'element-ui/src/utils/dom'
export default {
name: 'HeaderSearch',
@ -48,9 +49,9 @@ export default {
},
show(value) {
if (value) {
document.body.addEventListener('click', this.close)
on(document.body, 'click', this.close)
} else {
document.body.removeEventListener('click', this.close)
off(document.body, 'click', this.close)
}
}
},

View File

@ -115,6 +115,8 @@ import language from './utils/language.js'
import mimes from './utils/mimes.js'
import data2blob from './utils/data2blob.js'
import effectRipple from './utils/effectRipple.js'
import { on, off } from 'element-ui/src/utils/dom'
export default {
props: {
// name
@ -839,15 +841,19 @@ export default {
that.$emit('crop-upload-fail', err, field, ki)
}
})
},
$_closeHandler(e) {
if (this.value && (e.key == 'Escape' || e.keyCode == 27)) {
this.off()
}
}
},
created() {
// esc
document.addEventListener('keyup', (e) => {
if (this.value && (e.key == 'Escape' || e.keyCode == 27)) {
this.off()
}
})
on(document, 'keyup', this.$_closeHandler)
},
beforeDestroy() {
off(document, 'keyup', this.$_closeHandler)
}
}
</script>

View File

@ -14,6 +14,7 @@
<script>
import { addClass, removeClass } from '@/utils'
import { on, off } from 'element-ui/src/utils/dom'
export default {
name: 'RightPanel',
@ -58,13 +59,13 @@ export default {
},
methods: {
addEventClick() {
window.addEventListener('click', this.closeSidebar)
on(window, 'click', this.closeSidebar)
},
closeSidebar(evt) {
const parent = evt.target.closest('.rightPanel')
if (!parent) {
this.show = false
window.removeEventListener('click', this.closeSidebar)
off(window, 'click', this.closeSidebar)
}
},
insertToBody() {

View File

@ -12,6 +12,8 @@
</template>
<script>
import { on, off } from 'element-ui/src/utils/dom'
export default {
name: 'Sticky',
props: {
@ -39,15 +41,15 @@ export default {
},
mounted() {
this.height = this.$el.getBoundingClientRect().height
window.addEventListener('scroll', this.handleScroll)
window.addEventListener('resize', this.handleResize)
on(window, 'scroll', this.handleScroll)
on(window, 'resize', this.handleResize)
},
activated() {
this.handleScroll()
},
destroyed() {
window.removeEventListener('scroll', this.handleScroll)
window.removeEventListener('resize', this.handleResize)
off(window, 'scroll', this.handleScroll)
off(window, 'resize', this.handleResize)
},
methods: {
sticky() {

View File

@ -1,3 +1,5 @@
import { on, off } from 'element-ui/src/utils/dom'
const vueSticky = {}
let listenAction
vueSticky.install = Vue => {
@ -78,11 +80,11 @@ vueSticky.install = Vue => {
check()
}
window.addEventListener('scroll', listenAction)
on(window, 'scroll', listenAction)
},
unbind() {
window.removeEventListener('scroll', listenAction)
off(window, 'scroll', listenAction)
}
})
}

View File

@ -1,4 +1,5 @@
import './waves.css'
import { on, off } from 'element-ui/src/utils/dom'
const context = '@@wavesContext'
@ -58,14 +59,14 @@ function handleClick(el, binding) {
export default {
bind(el, binding) {
el.addEventListener('click', handleClick(el, binding), false)
on(el, 'click', handleClick(el, binding), false)
},
update(el, binding) {
el.removeEventListener('click', el[context].removeHandle, false)
el.addEventListener('click', handleClick(el, binding), false)
off(el, 'click', el[context].removeHandle, false)
on(el, 'click', handleClick(el, binding), false)
},
unbind(el) {
el.removeEventListener('click', el[context].removeHandle, false)
off(el, 'click', el[context].removeHandle, false)
el[context] = null
delete el[context]
}

View File

@ -28,6 +28,7 @@
<script>
import ScrollPane from './ScrollPane'
import path from 'path'
import { on, off } from 'element-ui/src/utils/dom'
export default {
components: { ScrollPane },
@ -55,9 +56,9 @@ export default {
},
visible(value) {
if (value) {
document.body.addEventListener('click', this.closeMenu)
on(document.body, 'click', this.closeMenu)
} else {
document.body.removeEventListener('click', this.closeMenu)
off(document.body, 'click', this.closeMenu)
}
}
},

View File

@ -1,4 +1,5 @@
import store from '@/store'
import { on, off } from 'element-ui/src/utils/dom'
const { body } = document
const WIDTH = 992 // refer to Bootstrap's responsive design
@ -12,10 +13,10 @@ export default {
}
},
beforeMount() {
window.addEventListener('resize', this.$_resizeHandler)
on(window, 'resize', this.$_resizeHandler)
},
beforeDestroy() {
window.removeEventListener('resize', this.$_resizeHandler)
off(window, 'resize', this.$_resizeHandler)
},
mounted() {
const isMobile = this.$_isMobile()

View File

@ -1,4 +1,5 @@
import { debounce } from '@/utils'
import { on, off } from 'element-ui/src/utils/dom'
export default {
data() {
@ -35,10 +36,10 @@ export default {
}, 100)()
},
$_initResizeEvent() {
window.addEventListener('resize', this.$_resizeHandler)
on(window, 'resize', this.$_resizeHandler)
},
$_destroyResizeEvent() {
window.removeEventListener('resize', this.$_resizeHandler)
off(window, 'resize', this.$_resizeHandler)
},
$_sidebarResizeHandler(e) {
if (e.propertyName === 'width') {
@ -47,10 +48,10 @@ export default {
},
$_initSidebarResizeEvent() {
this.$_sidebarElm = document.getElementsByClassName('sidebar-container')[0]
this.$_sidebarElm && this.$_sidebarElm.addEventListener('transitionend', this.$_sidebarResizeHandler)
on(this.$_sidebarElm && this.$_sidebarElm, 'transitionend', this.$_sidebarResizeHandler)
},
$_destroySidebarResizeEvent() {
this.$_sidebarElm && this.$_sidebarElm.removeEventListener('transitionend', this.$_sidebarResizeHandler)
off(this.$_sidebarElm && this.$_sidebarElm, 'transitionend', this.$_sidebarResizeHandler)
}
}
}

View File

@ -76,6 +76,8 @@
<script>
import { validUsername } from '@/utils/validate'
import SocialSign from './components/SocialSignin'
// eslint-disable-next-line
import { on, off } from 'element-ui/src/utils/dom'
export default {
name: 'Login',
@ -125,7 +127,7 @@ export default {
}
},
created() {
// window.addEventListener('storage', this.afterQRScan)
// on(window, 'storage', this.afterQRScan)
},
mounted() {
if (this.loginForm.username === '') {
@ -135,7 +137,7 @@ export default {
}
},
destroyed() {
// window.removeEventListener('storage', this.afterQRScan)
// off(window, 'storage', this.afterQRScan)
},
methods: {
checkCapslock({ shiftKey, key } = {}) {