2013-02-14 58 views
1

我有一個網站,對公衆不可見,我在幾個地方使用了爆破和矩陣字段。在正常加載的頁面上,一切都很好。但是,當矩陣字段出現在疊加層中(使用colorbox)時,不會創建矩陣菜單div。爆竹矩陣菜單沒有出現在覆蓋圖中

步進通過與螢火蟲的代碼,這個問題似乎是該行:

var $body = $(document.body); 

不正確設置$體(也許這是爲覆蓋裝載一個競爭條件?)。所以當它到達matrix.js中的這一塊代碼時:

obj.menu.$ul = $('<ul id="matrix-menu" />').appendTo($body).css({ 
    opacity: 0, 
    display: 'none' 
}); 

$ body沒有解析,所以菜單無法在任何地方執行。我想我已經修好了,但是想檢查一下,看看我是否應該擔心我會破壞別的東西。如果我將上面的代碼更改爲:

obj.menu.$ul = $('<ul id="matrix-menu" />').appendTo($(document.body)).css({ 
    opacity: 0, 
    display: 'none' 
}); 

一切似乎都很好。有沒有更好的方法來解決這個問題?

+0

我也遇到這個問題。我們有一個EE 2.3.1網站並將Matrix升級到了2.5.3,菜單沒有顯示,但是當我將代碼更改爲上面時,它工作正常。 – 2013-05-13 16:46:44

+0

你需要用「矩陣」來標記,這樣P&T民間才能看到它。 – 2013-05-13 16:48:00

+0

其實這應該已經發布在http://expressionengine.stackexchange.com/ - 我們沒有積極監視堆棧溢出的任何標籤。 – 2013-05-13 16:58:32

回答

1

如果矩陣字段在第一次初始化時沒有高度,它會將其大部分初始化內容置於保持狀態,假設它默認處於隱藏狀態或位於輔助發佈選項卡上。這減少了初始頁面加載時間,並修復了一些需要知道其單元格中DOM元素的維度的單元格類型(文本,資產或其他)的一些問題。

矩陣將在其被擴展或其選項卡被點擊時自動恢復初始化,但如果您在發佈頁面之外使用矩陣,則需要觸發初始化 - 恢復自己:

for (var i = 0; i < Matrix.instances; i++) 
{ 
    Matrix.instances[i].initRowsIfVisible(); 
} 
+0

我實際上正常發佈頁面中出現此問題。我沒有意識到OP正在使用Safecracker。 – 2013-05-13 17:15:18

+0

剛剛意識到你說的是EE 2.3網站。 Matrix需要EE 2.4及更高版本(請參閱http://docs.pixelandtonic.com/matrix/installation.html)。你可以嘗試升級EE嗎?如果沒有幫助,請發送電子郵件至[email protected]​​xelandtonic.com將所有相關信息發送給我們,我們會進行調查。 – 2013-05-13 17:34:30