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

问题描述 投票:1回答:2

通过一项功能,我试图关闭当前打开的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>
magnific-popup
2个回答
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
投票

我有类似的问题。我的问题是事件冒泡。我有一个触发onclick的链接和功能。我添加了return false,它起作用了。 HTH

© www.soinside.com 2019 - 2024. All rights reserved.