我为导航菜单创建了一个 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 应用于插件的计算时。
我该如何解决这个问题?