2012-07-04 53 views
0

我想抓住fancybox錯誤(請求的內容無法加載。 請稍後再試。)並嘗試另一種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的錯誤。

回答

2

error不存在的選項,可以設置type'ajax'和編輯這樣ajax : { error : function(){ ...change fancybox and load... } } ajax的設置,那麼你必須:

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

但它可能是更好的檢查請求時是否之前使用ajax或iframe