Bootstrap 当您点击日期选择器时,offcanvas 阻止关闭 offcanvas

Bootstrap offcanvas prevent closing of offcanvas when you click on datepicker

当我在菜单内的表单中使用日期选择器并单击日期选择器按钮时,我遇到关闭 offcanvas 菜单的问题。

过去 2 天我一直在绞尽脑汁,但我无法解决这个问题,而且我搜索了所有地方都没有找到解决方案。

我正在使用 jquery ui 和 datepicker 结合 bootstrap 来自 iamphill

的 offcanvas

https://github.com/iamphill/Bootstrap-Offcanvas

我在 offcanvas 菜单和一个输入的日期选择器字段中有一些输入,当我打开菜单并单击任何日期或 previous/next 在日期选择器上时,offcanvas 菜单会自行关闭。

代码很长,无法粘贴到这里,所以我制作了 codepen 示例

https://codepen.io/lonerunner/full/dapzNX

如果你看一下,你会在右上角看到黑色的小方块,当你点击方块时,offcanvas 菜单会打开,第三个输入字段是日期选择器,当你点击日期选择器时会打开,如果你点击下个月,offcanvas 菜单将关闭。

如果有人知道如何防止关闭,我将不胜感激。

您需要更改 Offcanvas.prototype._documentClicked 函数。第 256 行(例如):

if (!clickedEl.hasClass('offcanvas-toggle') && clickedEl.parents('.offcanvas-toggle').length === 0 && clickedEl.parents('.navbar-offcanvas').length === 0 && !clickedEl.hasClass('navbar-offcanvas') && !clickedEl.hasClass('ui-corner-all')) {

同样有效的是更改以下代码,使其在日期选择器上关闭:

第 253 行

  Offcanvas.prototype._documentClicked = function(e) {
    if($('.ui-datepicker').is(':visible')) {
        return;
    }