2016-07-05 16 views
1

在我的網站中,主index.php有一個下拉菜單,如果我點擊一個項目,一個Ajax加載器工作並寫入主索引的主div。重新加載基礎全部或部分

但是,如果此導入使用基礎功能(顯示,標註,標籤..),則此導入不起作用。

如果在控制檯的WebExplore我再次插入此命令'$(document).foundation();',進口的作品,但我在日誌中收到試圖在已經有一個基金會插件的元素初始化明細警告

。 foundation.min.js:65試圖初始化已經具有基礎插件的元素的下拉菜單plugin.foundation.min.js:65

試圖在已經具有基礎插件的元素上初始化非畫布.foundation.min.js:65

試圖在已經有一個基礎的元素初始化響應撥動plugin.foundation.min.js:65

嘗試初始化一個已經有一個元素上顯示出來基礎插件。

有人能幫我找到一個乾淨的解決方案來重新加載基礎嗎?

回答

1

在基金會6.2.3,

$(document).foundation() 

將調用

reflow: function(this, plugins) 

與插件不確定的,所以每一個插件將檢查:該功能將着眼於爲$(文件),每個孩子[data-plugin_name]屬性,如果該元素已被初始化,則顯示此警告:

if ($el.data('zfPlugin')) { 
    console.warn("Tried to initialize " + name + " on an element that already has a Foundation plugin."); 
    return; 
} 

所以,你可以叫基金會()直接在您的Ajax請求後的新元素:用指定的插件(例如

$('#your_element').foundation(); 

或致電迴流。揭示)

Foundation.reflow($('document'), 'reveal') 

只要你不已經有一個初始化 '揭示' 元素在DOM

混合:(最佳的解決方案,我認爲)

Foundation.reflow($('#your_element'), 'reveal');