关闭,通过API打开新的大型弹出窗口

时间:2014-12-02 00:36:52

标签: magnific-popup

通过一个函数,我试图关闭当前打开的Magnific弹出窗口,然后打开一个新窗口。

我所拥有的是包含链接的自定义标题的图库。该链接关闭当前Magnific图像库,然后打开一个AJAX窗口。这是一个脚本,使用灯箱显示图像,并有一个“添加到购物车”链接,然后通过AJAX打开一个表单(以选择各种选项),然后将当前图像添加到购物车。

function sunshine_add_to_cart(image) {
    var image_url = jQuery(image).attr('href');
    jQuery.magnificPopup.close();
    jQuery.magnificPopup.open({
      items: {
        src: image_url+'?sunshine_lightbox_cart=1'
      },
      type: 'ajax'
    }, 0);
    console.log(image_url);
}

Magnific画廊成功关闭,但AJAX从未这样做过。控制台正在记录正确的URL,以便确实存在该值。通过标准链接打开的相同URL工作正常。

http://screencast.com/t/YoDiy2J76T - 标准链接打开此内容 - http://screencast.com/t/ee18Cl19tusI - 添加到购物车ajax窗口就好了

http://screencast.com/t/WHGseoYiJn6g - 图像视图中的链接关闭当前图库但不会打开新的AJAX窗口。单击购物车图标时,它会通过以下方式运行“sunshine_add_to_cart”功能:

<a href="http://sunshinepro.dev/client-galleries/gallery/digital-downloads/223ad622-low-23192542-2/" onclick="sunshine_add_to_cart(this); return false;" data-image-id="2401"><i class="fa fa-shopping-cart"></i></a>

2 个答案:

答案 0 :(得分:0)

使用setTimeout打开第二个弹出窗口。 enter link description here

显示了此答案的基础

我没有打开ajax类型的弹出窗口,因此尚未经过测试。

function sunshine_add_to_cart(image) {
    var image_url = jQuery(image).attr('href');
    jQuery.magnificPopup.close();

    window.setTimeout(open_new_popup, 100);
}

function open_new_popup() {
    jQuery.magnificPopup.open({
    items: {
        src: image_url+'?sunshine_lightbox_cart=1'
    },
    type: 'ajax'
    }, 0);
    console.log(image_url);
}

答案 1 :(得分:-1)

我有类似的问题。对我来说问题是事件冒泡。我有一个链接和一个触发onclick的funktion。我添加了返回false并且它有效。 HTH