如何在不触发事件的情况下打开/关闭引导模式
How to open/close a bootstrap modal without triggering event?
我有一个引导模式,在手动打开或关闭时触发其他操作。这些操作与show.bs.modal
和hide.bs.modal
事件挂钩。
现在,我还希望能够以编程方式打开或关闭模式,而无需触发此操作。可能吗?
您需要一种方法来确定模态是如何触发的;标志或类似的东西。
根据 Bootstrap 文档(假设您使用的是版本 3),e.relatedTarget
被设置为在回调中为 show.bs.modal
事件单击的元素。因此,如果以编程方式触发,则e.relatedTarget
是未定义的。 您可以使用它来避免运行show.bs.modal
回调函数。例如:
$('#myModal').on('show.bs.modal', function (e) {
if (e.relatedTarget) {
// User triggered, do something...
}
});
至于hide.bs.modal
事件,没有类似的属性可用,但您可以使用切换类或数据属性实现相同的效果。 在要在代码中隐藏模态之前设置此标志,并确保模态的hide.bs.modal
回调正在检查其是否存在,并且仅在不存在时才运行。例如:
// Prep modal event
$('#myModal').on('hide.bs.modal', function (e) {
if (!$('#myModal').hasClass('programmatic')) {
// User triggered, do something...
}
});
// When hiding your modal
$('#myModal').toggleClass('programmatic');
$('#myModal').modal('hide');
对于上述两种情况,另一种选择是在显示/隐藏之前删除事件侦听器,触发要显示/隐藏的模式,然后重新添加事件侦听器。
相关文章:
- 如何在不点击按钮的情况下打开引导模式
- 如何在不创建数组的情况下使用NgFor来生成矩阵UI模式
- 如何在不选择模式配置参数的情况下,使用mongoose在MongoDB模式实例化中的关联数组/对象中执行foreach
- 可以在没有副作用的情况下删除严格模式吗
- 如何在不触发事件的情况下打开/关闭引导模式
- 默认情况下,Jquery UI 模式(弹出框)控件大小和隐藏
- 如何在没有 ID 的情况下获取引导模式
- 如何在启用缩放的情况下使用Highcharts触发模式视图
- 在不重定向的情况下以模式发送表单数据
- 在Javascript中,如何在不更改函数的情况下检查函数是否处于严格模式*
- 在没有启用严格模式的情况下,如何在node.js v4.2.1中使用ECMAScript 2015
- JavaScript,在不使用eval(Revearing模式)的情况下,将私有函数作为公共方法内的字符串调用
- 默认情况下,在方向的旅行模式下路由不激活
- 如何在不重新加载页面的情况下显示模式
- 有没有一种好的模式可以让JavaScript在不知道特定父类的情况下调用父类中的重写函数?
- 如何在没有循环依赖的情况下在GraphQL中拆分模式
- 默认情况下,可编辑表单需要启用编辑模式
- 是否可以在没有确认警报的情况下以Kiosk模式关闭IE
- Angular routing & Bootstrap - 在不更改页面内容的情况下显示模式对话框
- 在JavaScript中,这种情况下的首选模式是什么?