ナビゲーション メニュー用の jQuery プラグインを作成しました。JavaScript 内で、jQuery プラグイン JavaScript ファイル (ファイルの上部) で、プラグインに関連する CSS を動的にロードしています。次に$(document).ready(function()
、プラグインを HTML 要素の DIV にアタッチします。
問題は、プラグインの起動時に、要素に適用される CSS に基づいていくつかの outerWidth() が計算されることです。一部のブラウザーでは、CSS が完全に読み込まれて HTML に適用される前に、プラグインが実行されます。これが発生すると、幅の計算が正しくありません。多くの場合、li または ul 要素からウィンドウの幅を取得するのではなく、ウィンドウの幅を取得しています。
プラグイン JavaScript ファイルに次のようなコードがあります。
function includeCSS(p_file) {
var v_css = document.createElement('link');
v_css.rel = 'stylesheet'
v_css.type = 'text/css';
v_css.href = p_file;
document.getElementsByTagName('head')[0].appendChild(v_css);
}
includeCSS("Scripts/jQuery/plugins/jquery-mmm-1.0/menu.css");
jQuery init メソッドで css をロードしようとしましたが、これにも同様の問題があります。
jQuery プラグイン JavaScript ファイル内から CSS を指定する必要があります (エンド ユーザーにとって作業を簡単にするため)。
これに取り組んでいる間、私は HTML ページの CSS に直接リンクしました。これを行っている間、物事はうまくいきました。問題は、CSS を動的にロードし、その後この CSS をプラグインからの計算に適用する必要があることです。
どうすればこれを解決できますか?