我正在通过 jquery 将网页标题的 HTML 注入 DOM(模拟母版页)。在标题中,我加载了一个名为jMenu的 jquery 导航菜单插件。我能够为标题注入 HTML,它似乎没有问题。加载后,我需要对 jMenu 进行 jquery 调用。
问题是看起来 jMenu 调用是在 DOM 完成更新之前进行的,并抛出一个错误,抱怨它找不到其中一个 html 元素。所以我试图延迟加载到 jMenu 但我认为调用现在甚至没有被执行,因为我的警报没有弹出。我已经对此进行了一些搜索,但无法使其正常工作。我猜这是一个小的语法问题。我尝试了几件事:
HTML:
<body>
<div class="mpheader">
<div class="header"> <!-- start of injected html -->
<br/><br/>
<h1 style="text-align: center;">Reports</h1>
<div class="centerControl">
<ul id="jMenu">
...
</div> <!-- end of injected html -->
</div>
<div class="content">
<h2>Welcome</h2>
...
JS:
$(document).ready(function () {
// Load Header
$.get(
"./header.jsp",
function(data) {
$(".mpheader").html(data);
}
);
// Initialize Navigation Menu
$(".header").on("load", function() { /* doesn't get called */
alert('called');
$("#jMenu").jMenu();
})
$(".mpheader").on("load", function() { /* doesn't get called */
alert('called');
$("#jMenu").jMenu();
})
$(window).load(function(){ /* doesn't get called */
alert('called');
$("#jMenu").jMenu();
})
//$("#jMenu").jMenu(); /* will cause error complaining about dom */
// TODO: Load Footer
});