你没救了,没救了,救了,了 2021-10-11 21:25 采纳率: 100%
浏览 84
已结题

怎么为this.$confirm取消,确认提供快捷键(取消和确认)?


 this.$confirm('您确定要删除当前记录吗?', '提示', {
          confirmButtonText: '确定(O)',
          cancelButtonText: '取消(C)',
          type: 'warning'
        }).then(() => {
          this.handleD()
        }).catch(() => {
          this.handleC()
        })
  • 写回答

2条回答 默认 最新

  • CSDN专家-showbo 2021-10-11 21:58
    关注

    可以自己注册keydown事件,判断按下o或者c键盘,获取对应的按钮触发click事件,示例如下
    题主要的代码如下,有帮助麻烦点个采纳【本回答右上角】,谢谢~~有其他问题可以继续交流~

    img

    <html class="" lang="en">
    <head>
        <meta charset="UTF-8">
        <title>CodePen Demo</title>
        <style class="INLINE_PEN_STYLESHEET_ID">
        @import url("https://unpkg.com/element-ui@2.15.6/lib/theme-chalk/index.css");
        </style>
    
    </head>
    
    <body>
        <script src="https://unpkg.com/vue/dist/vue.js"></script>
        <script src="https://unpkg.com/element-ui@2.15.6/lib/index.js"></script>
        <div id="app">
            <template>
                <el-button type="text" @click="open">点击打开 Message Box</el-button>
            </template>
        </div>
    
        <script>
    
            var Main = {
                methods: {
                    fireEvent(el) {
                        const event = document.createEvent('HTMLEvents');
                        event.initEvent('click', true, false);
                        el.dispatchEvent(event);
    
                    },
                    hotkey(e) {
                        if (e.keyCode == 79 ||//O
                            e.keyCode == 67//C
                        ) {
                            console.log('fireByHotKey')
                            var btns = document.querySelectorAll('.el-message-box__wrapper .el-button--small');
                            this.fireEvent(btns[e.keyCode == 79 ? 1 : 0]);
                        }
                    },
    
                    open() {
                        document.addEventListener('keydown', this.hotkey);
                        this.$confirm('您确定要删除当前记录吗?', '提示', {
                            confirmButtonText: '确定(O)',
                            cancelButtonText: '取消(C)',
                            type: 'warning'
                        }).then(() => {
                            //this.handleD()
                            console.log('o')
                            document.removeEventListener('keydown', this.hotkey);
                        }).catch(() => {
                            //this.handleC()
                            console.log('c')
                            document.removeEventListener('keydown', this.hotkey);
                        })
                    }
                }
            };
            var Ctor = Vue.extend(Main);
            new Ctor().$mount('#app');
        </script>
    
    
    </body>
    </html>
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月20日
  • 已采纳回答 10月12日
  • 创建了问题 10月11日

悬赏问题

  • ¥15 fesafe材料库问题
  • ¥35 beats蓝牙耳机怎么查看日志
  • ¥15 Fluent齿轮搅油
  • ¥15 八爪鱼爬数据为什么自己停了
  • ¥15 交替优化波束形成和ris反射角使保密速率最大化
  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统