Auto close pulldowns on outside click

This commit is contained in:
Björn Fromme
2023-01-26 17:43:24 +01:00
parent a9a3f0a7c5
commit 383ec55354
6 changed files with 8713 additions and 34 deletions
+8676 -28
View File
File diff suppressed because it is too large Load Diff
@@ -1,5 +1,5 @@
<template>
<div class="relative">
<div class="relative" ref="target">
<button class="button bg-button button--small w-full"
type="button"
@click.prevent="visible = !visible">
@@ -40,6 +40,14 @@
return {
visible: false,
}
}
},
mounted () {
let self = this
document.addEventListener('click', e => {
if (self.$refs.target !== undefined && self.$refs.target.contains(e.target) === false) {
self.visible = false
}
})
}
}
</script>
@@ -1,5 +1,5 @@
<template>
<div class="relative" v-if="hasSelectedRentals">
<div class="relative" v-if="hasSelectedRentals" ref="target">
<button class="button bg-button button--small" @click.prevent="visible = !visible">
<span>
Größen
@@ -58,6 +58,14 @@
}
return result
}
},
mounted () {
let self = this
document.addEventListener('click', e => {
if (self.$refs.target !== undefined && self.$refs.target.contains(e.target) === false) {
self.visible = false
}
})
}
}
</script>
@@ -1,5 +1,5 @@
<template>
<div class="relative" tabindex="0">
<div class="relative" ref="target">
<button class="button bg-button button--small" @click.prevent="visible = !visible">
<span>
Zustieg
@@ -46,6 +46,14 @@
visible: false,
pickupId: this.participant.pickupId
}
},
mounted () {
let self = this
document.addEventListener('click', e => {
if (self.$refs.target !== undefined && self.$refs.target.contains(e.target) === false) {
self.visible = false
}
})
}
}
</script>
@@ -1,5 +1,5 @@
<template>
<div class="relative" v-if="hasServices">
<div class="relative" v-if="hasServices" ref="target">
<button class="button bg-button button--small" type="button" @click.prevent="visible = !visible">
<span>
{{ subType.label }}
@@ -82,6 +82,14 @@
hasServices () {
return Object.keys(this.availableServices).length > 0;
}
},
mounted () {
let self = this
document.addEventListener('click', e => {
if (self.$refs.target !== undefined && self.$refs.target.contains(e.target) === false) {
self.visible = false
}
})
}
}
</script>
@@ -12,7 +12,6 @@
{{ service.name }}
</span>
</label>
</div>
</template>