2013-05-08 50 views
0

當關閉時,有沒有辦法重置fancybox實例或刷新它的內容? 請注意,它從同一頁面上的div抓取內容。如何在關閉時刷新Fancybox內容?

我希望它顯示內容,就像它重新打開fancybox時第一次加載到dom中一樣。

我想這是一個JavaScript/jQuery的東西,比Fancybox的東西,對不對?

$.fancybox.open({ 
    href: '#popup', 
    padding: 0, 
    autoWidth: true, 
    arrows: false, 
    closeBtn: false, 
    scrollOutside: true, 
    helpers: { 
     overlay: { 
      css: { 
       'background': 'rgba(0, 0, 0, 0.5)' 
      }, 
      locked: false 
     } 
    }, 
    afterClose: function() { 
     // Reset or refresh here 
    } 
}); 

回答

1

這取決於那種你正在爲目標div變化的,但你不能「重置」他們無需重新加載頁面或頁面執行一個時髦的Ajax調用和獲取div的內容。

解決這個越來越將是該分區的標記存儲在一個變量(使用jQuery的html(),和「復位」該分區使用變量在afterClose()回調的最簡單方法。

JS

var content = $('#popup').html(); // store content on documentReady() 

$.fancybox.open({ 
    href: '#popup', 
    padding: 0, 
    autoWidth: true, 
    arrows: false, 
    closeBtn: false, 
    scrollOutside: true, 
    helpers: { 
     overlay: { 
      css: { 
       'background': 'rgba(0, 0, 0, 0.5)' 
      }, 
      locked: false 
     } 
    }, 
    afterClose: function(){ 
     $('#popup').html(content); 
    } 
});  

它可能是最好用的fancybox的beforeLoad回調,連同這一點,要對所有的內容都這樣做,但你似乎可以加載一個div,這應該工作。

+1

fancybox v2.x中沒有'onLoad'回調 – JFK 2013-05-08 17:19:20

+0

非常感謝,尼克!漂亮而簡單的解決方案 – jlmmns 2013-05-08 18:04:09

+1

不是問題,樂意提供幫助。感謝您提及@jfk我已經更新它,以使用應該是近似的v2回調。 – 2013-05-08 19:44:00