一般には公開されていないサイトがあり、いくつかの場所でセーフクラッカーとマトリックス フィールドを使用しています。正常に読み込まれるページでは、すべて問題ありません。ただし、マトリックス フィールドが (カラーボックスを使用して) オーバーレイに表示される場合、マトリックス メニュー div は作成されません。
FireBug を使用してコードをステップ実行すると、問題は次の行にあるようです。
var $body = $(document.body);
$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'
});
すべてがうまくいくようです。これに対処するより良い方法はありますか?