因此,我有一个使用此函数添加的菜单:
function loadContent() {
$(".navbar").load("navigation.html");
} navigation.html看起来像这样:
<ul>
<li><a href="home.html" class="first">Home</a></li>
<li><a href="calendar.html">Calendar</a></li>
<li><a href="profile.html">Profile</a></li>
<li><a href="charts.html" class="last">Energy Charts</a></li>
</ul>但是,当我尝试在该菜单中选择某个内容并添加一个类时,假设:
$('.navbar a').addClass('activeState');它在Chrome中不起作用,我想是因为DOM需要刷新或者别的什么,我真的不知道……
发布于 2013-01-31 04:41:28
你必须等待内容真正加载。将您的代码放在load回调函数中:
function loadContent() {
$(".navbar").load("navigation.html", function () {
$('.navbar a').addClass('activeState');
});
}正如@LifeInTheGrey所指出的,为了获得更好的性能,您应该使用单独的函数:
function loadContent() {
$(".navbar").load("navigation.html", actOnContent);
}
function actOnContent () {
$('.navbar a').addClass('activeState');
}您还应该研究选择器缓存...
发布于 2013-01-31 04:42:22
任何依赖于AJAX加载内容的代码都必须放在所述AJAX请求的成功处理程序中。在.load()的情况下,这是第三个参数:
$(".navbar").load("navigation.html",null,function() {
$(".navbar a").addClass("activeState");
});发布于 2013-01-31 04:50:43
在文档就绪功能上尝试此功能:
$('.navbar').delegate('a', 'click', function() {
$(this).addClass('activeState');
});https://stackoverflow.com/questions/14613313
复制相似问题