【问题标题】:Close, open new magnific popup window via API关闭,通过 API 打开新的放大弹出窗口
【发布时间】:2014-12-02 00:36:52
【问题描述】:

通过一个函数,我试图关闭当前打开的 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


    【解决方案1】:

    使用 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);
    }
    

    【讨论】:

      【解决方案2】:

      我遇到了类似的问题。对我来说问题是事件冒泡。我有一个链接和一个触发 onclick 的功能。我添加了 return false 并且它起作用了。高温

      【讨论】:

        猜你喜欢
        • 2021-07-28
        • 1970-01-01
        • 2013-05-01
        • 1970-01-01
        • 2012-06-03
        • 1970-01-01
        • 2023-04-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多