jquery mousetrap关闭canvas

kmbjn2e3  于 12个月前  发布在  jQuery
关注(0)|答案(1)|浏览(103)

所以我有这样的代码来显示我的收藏夹边栏时,点击“f”在我的键盘上:

Mousetrap.bind('f', function () {
    const bsOffcanvas = new bootstrap.Offcanvas('#favorites');
    bsOffcanvas.show();
});

字符串
唯一的问题是,当再次点击“f”时,侧边栏并没有关闭,它想再次打开,这意味着,背景只是越来越暗,因为offcanvas一直被打开。有没有一种方法可以使“切换”,当再次按“f”时,它关闭?

j1dl9f46

j1dl9f461#

这是有效的:

const bsOffcanvas = new bootstrap.Offcanvas('#favorites');
let isOffcanvasShown = false;

bsOffcanvas._element.addEventListener('shown.bs.offcanvas', function ()     {
    isOffcanvasShown = true;
});

bsOffcanvas._element.addEventListener('hidden.bs.offcanvas', function ()     {
    isOffcanvasShown = false;
});

Mousetrap.bind('f', function () {
    if (isOffcanvasShown) {
        bsOffcanvas.hide();
    } else {
        bsOffcanvas.show();
    }
});

字符串

相关问题