【问题标题】:BackboneJS - Magnific popup not firing youtube videoBackboneJS - 没有触发 youtube 视频的壮丽弹出窗口
【发布时间】:2014-07-01 10:13:21
【问题描述】:

我想在 Magnific 弹出窗口 http://dimsemenov.com/plugins/magnific-popup/ 中显示 youtube 视频。我从一个 JSON 文件中获得的 youtube 视频的 URl,我使用 HandlebarsJS 将其插入到我的 HTML 中。到目前为止一切顺利,当我使用 webinspector 检查<a href> 时,正确的链接可用。

尽管如此,当我点击它时,Magnific 弹出窗口会打开,但 youtube 视频没有触发,而是收到一条错误消息。似乎一旦弹出窗口打开,或者更确切地说,当 Magnific 弹出窗口被触发时,它就会完全脱离我的 BackboneJS 应用程序。这是真的吗?

在我的 HTML (video.html) 中,我有:

<a class="vidPopup" href="youtubelink here">

在主干视图中我创建了事件:

    template: 'video', //referring to the video.html
    events: {
        'click .vidPopup': 'seeVid'
    },

    seeVid: function(e) {
        e.preventDefault();
        $('.vidPopup').magnificPopup({
            disableOn: 700,
            type: 'iframe',
            mainClass: 'mfp-fade',
            removalDelay: 160,
            preloader: false,
            fixedContentPos: false
        });
    }

这可能是什么问题?

【问题讨论】:

  • seeVid 在渲染后被调用? + 最好使用 this.$el.find('.vidPopup') 而不是 $('.vidPopup')
  • 这没有解决它:-/
  • 在 view render() 之后调用 seeVid 吗?
  • 嗯,真的没有得到你的问题 - seeVid 是一个点击事件:s

标签: backbone.js youtube handlebars.js magnific-popup


【解决方案1】:

我自己解决了!由于 Youtube API 返回 youtube 视频的 ID,我只需要这样做:

<a class="vidPopup" href="https://www.youtube.com/watch?v={{id}}">

我不必更改弹出设置

【讨论】:

  • 您不是必须使用embed 版本的watch 网址吗?
猜你喜欢
  • 2021-02-05
  • 1970-01-01
  • 2014-06-23
  • 2014-02-02
  • 2015-09-18
  • 1970-01-01
  • 1970-01-01
  • 2016-07-13
  • 1970-01-01
相关资源
最近更新 更多