问题描述
引导程序4.3.1 jQuery 3.0.0 数据表1.10.19
我有一个弹出窗口,该弹出窗口由标题中的按钮触发-弹出窗口在用户点击时应用过滤器。 应用过滤器后,弹出窗口关闭。然后,当用户单击按钮时(现在已应用了“ filter-active”类。现在,下次单击该按钮时,我将阻止默认设置,并运行一个函数来删除该过滤器。然后删除该过滤器,然后删除了类“ filter-active”,并在他们下次单击按钮时,弹出窗口应再次显示(本质上是回到第一次单击之前的状态),但是会发生什么-在第一次单击时,什么也没有发生。在第二次点击时,一切正常,但是,我无法弄清为什么第一次点击会被忽略。
在BS 4.3.1中-您不能绑定到触发弹出窗口的click事件,而只能绑定到<
/div>
或show.bs.popover
事件。这是相关的代码-有很多周围的代码,但这是执行操作的唯一位置。我什至不知道如何调试它。
shown.bs.popover
结果是-弹出窗口起作用了。然后应用了该类,但它不起作用-这是设计使然。然后,该类被删除,现在它应该在这里正常工作。我点击它。没用我再次单击它-确实如此。
不确定乳清按钮在第一次点击时是否还在犹豫。另外-我已经通过调试器确认, $('#this-button').on('show.bs.popover',onPopoverShow);
function onPopoverShow(evt) {
var $btn = $(evt.target);
if ($btn.hasClass('filter-active')) {
evt.stopPropagation();
evt.preventDefault();
callbackThatDoesTheHeavyLifting();
} else {
$('[data-toggle="popover"]').not($btn).popover('hide');
}
}
不会在第一次单击时被调用。但是我不知道为什么。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)