【发布时间】:2015-01-15 19:07:00
【问题描述】:
如果我第一次使用 {overlayClose: false} 之类的选项调用 SimpleModal,以后如何将该选项更改为 {overlayClose: true}?
我希望在 AJAX 调用开始时打开 SimpleModal 以提供用户一些反馈,同时防止模态被关闭,然后在 AJAX 完成回调中,将模态设置为可关闭。
【问题讨论】:
如果我第一次使用 {overlayClose: false} 之类的选项调用 SimpleModal,以后如何将该选项更改为 {overlayClose: true}?
我希望在 AJAX 调用开始时打开 SimpleModal 以提供用户一些反馈,同时防止模态被关闭,然后在 AJAX 完成回调中,将模态设置为可关闭。
【问题讨论】:
是的,但是您必须更改选项,然后重新绑定事件处理程序以查看选项更改。我从文档站点将其破解为“基本”演示:
$('#basic-modal .basic').click(function (e) {
var modal = $('#basic-modal-content').modal();
$('#overclose').text(modal.o.overlayClose ? 'true' : 'false');
window.setTimeout(function() {
// These three lines will do it:
modal.o.overlayClose = true;
modal.unbindEvents();
modal.bindEvents();
$('#overclose').text('true');
}, 5000);
return false;
});
5 秒后,选项按您的预期启动。我还在模态本身中添加了一个指示器,一个标识为“overclose”的跨度,以向您显示状态以及它何时发生变化。
【讨论】:
$.modal.impl.o 来访问所需的功能,但它就像一个魅力!接受。
我必须通过以下方式引用模态对象:
$.modal.impl.o.escClose = false;
$.modal.impl.unbindEvents();
$.modal.impl.bindEvents();
jQuery 选择器对对象的引用对我来说没有用(o 未定义)。
【讨论】: