我有一个运行Zurb Foundation 5的网站,我在网页上部署了多个Reveal
模态。当它们通过$('#DIVID').foundation('reveal', 'open');
加载时它们正常运行,但是当我通过模式中的按钮使用以下内容触发不同的模态时,我收到了意外的结果。
<script>
$('#a_msg').on('click', '#v_update', function () {
$('#a').foundation('reveal', 'close');
$('#v').foundation('reveal', 'open');
});
</script>
第一个模态关闭然后第二个模态触发,但是当我尝试关闭第二个模态时,单击背景不会关闭它,然后单击a class="close-reveal-modal"
按钮关闭模态,但背景仍然是灰色的。
错误
Uncaught TypeError: Cannot read property 'bg_class' of undefined
从下面的foundation.js源代码看,第二个模态似乎没有被正确初始化。
S(document)
.on('click.fndtn.reveal', this.close_targets(), function (e) {
e.preventDefault();
if (!self.locked) {
var settings = S('[' + self.attr_name() + '].open').data(self.attr_name(true) + '-init'),
bg_clicked = S(e.target)[0] === S('.' + settings.bg_class)[0];
Uncaught TypeError: Cannot read property 'bg_class' of undefined (repeated 2 times)
if (bg_clicked && !settings.close_on_background_click) {
return;
}
self.locked = true;
self.close.call(self, bg_clicked ? S('[' + self.attr_name() + '].open') : S(this).closest('[' + self.attr_name() + ']'));
}
});
if(S('[' + self.attr_name() + ']', this.scope).length > 0) {
S(this.scope)
// .off('.reveal')
.on('open.fndtn.reveal', this.settings.open)
.on('opened.fndtn.reveal', this.settings.opened)
.on('opened.fndtn.reveal', this.open_video)
.on('close.fndtn.reveal', this.settings.close)
.on('closed.fndtn.reveal', this.settings.closed)
.on('closed.fndtn.reveal', this.close_video);
} else {
S(this.scope)
// .off('.reveal')
.on('open.fndtn.reveal', '[' + self.attr_name() + ']', this.settings.open)
.on('opened.fndtn.reveal', '[' + self.attr_name() + ']', this.settings.opened)
.on('opened.fndtn.reveal', '[' + self.attr_name() + ']', this.open_video)
.on('close.fndtn.reveal', '[' + self.attr_name() + ']', this.settings.close)
.on('closed.fndtn.reveal', '[' + self.attr_name() + ']', this.settings.closed)
.on('closed.fndtn.reveal', '[' + self.attr_name() + ']', this.close_video);
}
return true;
},
有没有人有经验从另一个公开透露的链接中正确地获取揭示?
答案 0 :(得分:1)
在不同模态之间切换时,背景未正确切换。
关闭最后一个模态后使用以下内容:
$(&#39; .reveal模态-BG&#39)除去();
删除div会消除症状(背景覆盖),因此在未定义bg_class的情况下停止js错误。