Zurb Foundation 5 - 通过另一个揭示中触发的JavaScript显示

时间:2014-04-08 22:54:12

标签: jquery zurb-foundation

我有一个运行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;
    },

有没有人有经验从另一个公开透露的链接中正确地获取揭示?

1 个答案:

答案 0 :(得分:1)

在不同模态之间切换时,背景未正确切换。

关闭最后一个模态后使用以下内容:

$(&#39; .reveal模态-BG&#39)除去();

删除div会消除症状(背景覆盖),因此在未定义bg_class的情况下停止js错误。