使用模态 Bootstrap-vue 在背景上获取事件点击
Get event click on backdrop using modal Bootstrap-vue
我正在使用 Vue2 和 Boostrap-vue 制作模态组件,这是代码
我通过了以下道具@backdrop="handleBackdrop"
<template>
<b-modal
v-model="showModal"
id="modal"
@backdrop="handleBackdrop"
@ok="handleBackdrop"
>
...
</template>
<script>
data() {
return {
showModal: false
}
},
methods: {
show() {
this.showModal = true;
},
hide() {
this.showModal = false;
},
handleBackdrop(ev) {
ev.preventDefault();
console.log("Click backdrop");
}
}
</script>
我正在使用这个@ok 来测试函数 handleBackdrop,它可以工作,但我无法激活这个点击背景
模态框上没有 backdrop
事件,这就是为什么您看不到任何事情发生的原因。
您可以改为观看包含 trigger
属性 的 hide
事件。
此触发器 属性 将包含触发隐藏事件的内容,包括 backdrop
如果单击该事件。
https://bootstrap-vue.js.org/docs/components/modal/#prevent-closing
<template>
<b-modal id="modal" @hide="onHide"></b-modal>
</template>
<script>
new Vue({
el: '#app',
methods: {
onHide(evt) {
if(evt.trigger === "backdrop"){
evt.preventDefault();
this.handleBackdrop();
}
},
handleBackdrop() {
console.log('Backdrop clicked')
}
}
})
</script>
如果您只是想在单击背景时阻止模式关闭,您可以将 no-close-on-backdrop
添加到模式以防止此行为。
我正在使用 Vue2 和 Boostrap-vue 制作模态组件,这是代码
我通过了以下道具@backdrop="handleBackdrop"
<template>
<b-modal
v-model="showModal"
id="modal"
@backdrop="handleBackdrop"
@ok="handleBackdrop"
>
...
</template>
<script>
data() {
return {
showModal: false
}
},
methods: {
show() {
this.showModal = true;
},
hide() {
this.showModal = false;
},
handleBackdrop(ev) {
ev.preventDefault();
console.log("Click backdrop");
}
}
</script>
我正在使用这个@ok 来测试函数 handleBackdrop,它可以工作,但我无法激活这个点击背景
模态框上没有 backdrop
事件,这就是为什么您看不到任何事情发生的原因。
您可以改为观看包含 trigger
属性 的 hide
事件。
此触发器 属性 将包含触发隐藏事件的内容,包括 backdrop
如果单击该事件。
https://bootstrap-vue.js.org/docs/components/modal/#prevent-closing
<template>
<b-modal id="modal" @hide="onHide"></b-modal>
</template>
<script>
new Vue({
el: '#app',
methods: {
onHide(evt) {
if(evt.trigger === "backdrop"){
evt.preventDefault();
this.handleBackdrop();
}
},
handleBackdrop() {
console.log('Backdrop clicked')
}
}
})
</script>
如果您只是想在单击背景时阻止模式关闭,您可以将 no-close-on-backdrop
添加到模式以防止此行为。