$ .magnificPopup.open()回调不起作用

时间:2015-04-24 16:01:31

标签: magnific-popup

$.magnificPopup.open({
    items: {
        src: $('#cabinet-msg')
    },
    type:'inline',
    midClick: true,
    callbacks: {
        close: function() {
            alert('test');
        }
    }  
});


$.magnificPopup.open({
    items: {
        src: $('#cabinet-msg2')
    },
    type:'inline',
    midClick: true,
    callbacks: {
        close: function() {
            alert('test2');
        }
    }  
});

我该如何解决这个问题?我需要使用javascript创建不使用默认初始化的弹出窗口。它适用但仅适用于一个实例。如何让它适用于多个实例?

问题似乎在这里:

_checkInstance = function() {
    if(!$.magnificPopup.instance) {
        mfp = new MagnificPopup();
        mfp.init();
        $.magnificPopup.instance = mfp;
    }
}

但是当这样宣布时:

$('.acb-modal').magnificPopup({
    type:'inline',
    midClick: true,
    callbacks: {
        close: function() {
            $('#opencallback div.timer').hide();
            $('#opencallback #callback_form').show();
            $('#acb-msg-box').hide();
        }
    }   
 });

它工作正常。

我认为它适用于jquery特定但我不熟悉它。

我可以通过为此添加隐藏元素来使其工作,但我想清楚地说明。

1 个答案:

答案 0 :(得分:5)

是的,我通过解析jquery对象找到了解决方案: - )

您可以使用此

直接重新声明回调方法
$.magnificPopup.instance.st.callbacks = {
    close: function() {
         alert('test3')
       }
    }

在使用$ .magnificPopup.open

之前

感谢您的帮助)