我将引导导航栏转换为工具栏并修改了一个下拉列表(实际上是dropup)以包含2个datepicker元素:
问题是,当我选择日期时,下拉列表会崩溃 . 我的解决方案(我向其他人开放)是创建一个函数,通过添加类'open'并将该函数添加到datepicker close()函数来打开下拉列表 .
function leaveOpen(){
$("#dropdownMenu2").trigger('focus').attr('aria-expanded', 'true');
$("#rangeDropdown").addClass('open');
}(jQuery);
此函数正常工作,但还有另一个引导函数可以向后切换'open'类:
Dropdown.prototype.toggle = function (e) {
var $this = $(this)
if ($this.is('.disabled, :disabled')) return
var $parent = getParent($this)
var isActive = $parent.hasClass('open')
clearMenus()
if (!isActive) {
...
var relatedTarget = { relatedTarget: this }
$parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget))
...
$this
.trigger('focus')
.attr('aria-expanded', 'true')
$parent
.toggleClass('open')
.trigger('shown.bs.dropdown', relatedTarget)
}
我对这个JavaScript有点不知所措 . What can I add to leaveOpen() to prevent the 'open' class from toggling within 'Dropdown.prototype.toggle = function (e)'?
1 回答
看看:https://jsfiddle.net/hoffmanc/y6sho3nv/9/
AFAIK需要两种预防机制:
1)单击datepicker文本字段时停止隐藏下拉列表:
2)在单击日历本身中的日期时停止隐藏下拉列表: