javascript - 使用模式 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
事件,这就是为什么你没有看到任何事情发生。
您可以做的是观看hide
包含trigger
属性的事件。此触发器属性将包含触发隐藏事件的内容,包括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
到模态以防止这种行为。
推荐阅读
- java - 通过shell脚本将参数从txt文件传递给java文件
- android - Paho Mqtt 客户端在相关片段打开第三或第四次后不获取数据
- batch-file - 通过引用将环境变量从一个批处理文件传递到另一个批处理文件
- java - 没有主要清单属性 IntelliJ
- java - JAXB-即使我没有值也返回整个 XML 对象
- javascript - React Component 未加载 Webpack 和 Babel 初学者级别
- java - 根据 autocompletetextview 上的输入数据计算的总建议数 - android
- matlab - 低 auc(.4) 的 roc 曲线的形状有什么问题?
- android - 布局:下面在 CardView 内的 RelativeLayout 中不起作用
- json - firebase 可以自行更新吗?