【问题标题】:Magnific popup with Backbone only fires after second click仅在第二次单击后才会触发带有 Backbone 的宏伟弹出窗口
【发布时间】:2014-04-28 17:50:11
【问题描述】:

我遇到的问题与jquery click on href link - have to click twice 非常相似。第一次点击后,图片弹出效果很好,

因为插件似乎负责绑定点击处理程序 对你来说,这意味着你的第一次点击会绑定弹出窗口 功能(包括 onclick 处理程序),因此它仅适用于 再次单击。

我将 Backbone 1.0.0 与 require.js 一起使用。

我的代码如下:

主干视图

events:{
'click .test-popup-link':'popImg',
}

popImg: function (e) {
      e.preventDefault();
      $('.test-popup-link').magnificPopup({
        delegate: 'a',
        type: 'image',
        //closeBtnInside: false,
        closeOnContentClick: true,
        overflowY: 'auto',
        mainClass: 'mfp-img-mobile',
        image: {
          verticalFit: true
        }
      });

    },

HTML

   <div class='test-popup-link'><a class='image-popup-vertical-fit'        href="http://mydomain.com/files/8e0183d4179a11e2880f22000a1e8aaf_7%20(15).jpg"><img id='6576465avt7a6768'       src="http://mydomain.com/files/8e0183d4179a11e2880f22000a1e8aaf_7%20(15).jpg"></a></div>;

非常感谢任何帮助。谢谢。

【问题讨论】:

    标签: jquery backbone.js magnific-popup


    【解决方案1】:

    您可以在视图的initialize 函数中这样做:

    SearchView = Backbone.View.extend({
        el: $(".open-popup-link"),
        initialize: function () {
            $(this.el).magnificPopup({
                type: 'inline',
                midClick: true
            });
        }
    });
    var search_view = new SearchView();
    

    查看演示:http://jsfiddle.net/Cardiff/UWXNd/

    【讨论】:

    • 非常感谢,它有点工作 - 现在它在第一次尝试时打开 - 但弹出窗口失去了它的样式,它将图像作为新 URL 打开,而不是实际上在同一视图上的覆盖弹出窗口。你知道有什么问题吗?谢谢
    • 我没有使用您的设置,您应该使用代码中的设置。我想这可能是问题所在,比如type: 'inline' 等。
    猜你喜欢
    • 2014-10-31
    • 1970-01-01
    • 2015-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多