根据加载的HTML文件更改菜单选项颜色
Change Menu Option Color Depending on the HTML File Loaded
我想根据加载的页面改变菜单的颜色。我知道这是非常简单的服务器端语言的支持,但这是一个HTML项目,我进入。因此,我决定获取正在加载的HTML文件的名称并采取相应的行动,但是在这种方法中我遇到了一个奇怪的问题。让我解释一下。
我的菜单:
<nav>
<ul>
<li><a class="menu-option" id="about" href="about.html">About</a></li>
<li><a class="menu-option" id="trainer" href="#">Trainer / Consultant</a></li>
<li><a class="menu-option" id="testimonial" href="#">Testimonials</a></li>
<li><a class="menu-option" id="programs" href="#">Programs</a></li>
<li><a class="menu-option" id="contact" href="#">Contact us</a></li>
</ul>
</nav>
在JS $(document).ready(function() {
$("header").load("includes/header.html");
$("footer").load("includes/footer.html");
var page = location.pathname.split("/").slice(-1);
switch (page[0])
{
case "about.html":
$(".menu-option").css('color', 'white');
$("#about").css('color', '#E45C02');
break;
case "trainer.html":
$(".menu-option").css('color', 'white');
$("#trainer").css('color', '#E45C02');
break;
case "programs.html":
$(".menu-option").css('color', 'white');
$("#programs").css('color', '#E45C02');
break;
case "testimonial.html":
$(".menu-option").css('color', 'white');
$("#testimonial").css('color', '#E45C02');
break;
case "contact.html":
$(".menu-option").css('color', 'white');
$("#contact").css('color', '#E45C02');
default:
$(".menu-option").css('color', 'white');
break;
}
});
使用Firebug,我可以看到这个case正在被调用,但是about的颜色没有受到影响。所以我决定在about中添加一个警告
case "about.html":
alert("about");
$(".menu-option").css('color', 'white');
$("#about").css('color', '#E45C02');
break;
这个东西像预期的那样工作。我真的很困惑。为什么没有alert语句代码会失败?它扮演着什么角色?我遗漏了什么?我需要暂停一下吗?
我还试着把开关箱放在
$("header").ready(function(){
// Switch case here
// Still no luck !
});
这是因为.load()是异步的,这意味着你需要等到加载完成后再采取任何依赖于加载数据的操作。
您可以发送一个函数作为.load()的第二个参数,该函数将在加载数据后被调用。然后可以在该函数中运行switch语句。
的例子:
$(document).ready(function() {
function onHeaderLoaded() {
var page = location.pathname.split("/").slice(-1);
switch (page[0])
{
case "about.html":
$(".menu-option").css('color', 'white');
$("#about").css('color', '#E45C02');
break;
case "trainer.html":
$(".menu-option").css('color', 'white');
$("#trainer").css('color', '#E45C02');
break;
case "programs.html":
$(".menu-option").css('color', 'white');
$("#programs").css('color', '#E45C02');
break;
case "testimonial.html":
$(".menu-option").css('color', 'white');
$("#testimonial").css('color', '#E45C02');
break;
case "contact.html":
$(".menu-option").css('color', 'white');
$("#contact").css('color', '#E45C02');
default:
$(".menu-option").css('color', 'white');
break;
}
}
$("header").load("includes/header.html", onHeaderLoaded);
$("footer").load("includes/footer.html");
});
相关文章:
- 使用java脚本更改onClick事件中菜单选项卡的颜色
- Jquery选择菜单选项在页面刷新时失败
- 如何从下拉菜单选项中设置要显示的图像
- jQuery:将按钮过滤器转换为选择菜单选项
- 如何通过单击唯一按钮保存下拉菜单/复选框菜单选项和占位符值
- 动态替换下拉菜单选项jQuery
- 菜单选项卡选择/活动样式取决于url中的file.php、javascript函数
- 如何在用户更改菜单选项时显示不同的文本
- 如何在刷新后激活菜单选项卡
- 筛选具有不同值的下拉菜单选项
- 单击菜单选项后,单击时冻结悬停
- 如何创建 HTML 文本框,该文本框顶部有一个水平菜单选项卡可供选择
- 从下拉菜单选项中显示“标题”标签
- 如何从选择菜单选项动态声明全局变量
- 使用 Jquery 单击菜单链接时,激活或添加菜单选项卡上的类活动
- 如何在打开之前禁用菜单选项,使用jQuery Selectric
- Javascript 使用下拉菜单选项创建文本字段
- 在自己的网站上禁用chrome上下文菜单选项
- 选择选择菜单选项上的加载页面
- PHP / 如何使用提交按钮发布下拉菜单选项