0

我想捕捉一个fancybox 错误(无法加载请求的内容。请稍后再试。)并尝试另一种fancybox 类型。

像这样。第一次尝试ajax,如果返回错误,请尝试iframe。

    jQuery('.lightwindow').click(function() {
        var element = this;
        jQuery(element).fancybox({
            error: function() {

                // If this didn't work, try iframe
                jQuery(element).fancybox({
                    type: 'iframe',
                    autoSize: true
                });
            }
        });
        return false;
    });

但这不起作用。它只会显示第一个fancybox的错误。

4

1 回答 1

2

该选项error不存在,您可以像这样type设置'ajax'并编辑 ajax 设置,ajax : { error : function(){ ...change fancybox and load... } }然后您有:

jQuery(element).fancybox({
    type : 'ajax',
    ajax : {
        error: function() {
            // If this didn't work, try iframe
            jQuery(element).fancybox({
                type: 'iframe',
                autoSize: true
            });
        }
    }
 });

但最好在发出请求之前检查是使用 ajax 还是 iframe

于 2012-07-04T13:12:53.453 回答