<html>
<head>
<title>menu</title>
<style>
.highlight, .highlight_stay {
color:red;
}
</style>
<script type="text/javascript" src="jquery-1.7.min.js"></script>
<script type="text/javascript">
$(function() {
$('li a').hover(function() {
$(this).addClass('highlight');
}, function() {
$(this).removeClass('highlight');
});
$('li a').click(function() {
$(this).addClass('highlight_stay');
});
});
</script>
</head>
<body>
<ul>
<li><a href="#" style="text-decoration:none;">list1</a>
</li>
<li><a href="#" style="text-decoration:none;">list2</a>
<ul>
<li><a href="#" style="text-decoration:none;">sublist1</a>
</li>
<li><a href="#" style="text-decoration:none;">sublist2</a>
</li>
<li><a href="#" style="text-decoration:none;">sublist3</a>
</li>
<li><a href="#" style="text-decoration:none;">sublist4</a>
</li>
</ul>
</li>
<li><a href="#" style="text-decoration:none;">list3</a>
</li>
<li><a href="#" style="text-decoration:none;">list4</a>
</li>
</ul>
</body>
</html>
将所有列表更改为红色。但是,我想要以下要求。
我第一次点击list1
时,它会变成红色。如果我第二次点击list2
,list1
将更改为原始颜色,list2
将为红色。喜欢它想要工作。同时鼠标悬停也要将列表激活为红色。
任何人都可以提供帮助吗?请!
答案 0 :(得分:1)
只需更改点击处理程序,首先从当前拥有它的任何元素中删除highlight_stay
类。
$('li a').click(function(){
$('.highlight_stay').removeClass('highlight_stay');
$(this).addClass('highlight_stay');
});
答案 1 :(得分:0)
$('li a').click(function(){
$('a').removeClass('highlight_stay');
$(this).addClass('highlight_stay');
});
答案 2 :(得分:0)
使用CSS进行悬停,它比jQuery更有效。您可以使用.each删除所有高光,然后突出显示所需的高光。我刚刚在这里做了一个jsfiddle - http://jsfiddle.net/Ezb4v/
$(function () {
$('li a').click(function () {
$('li a').each(function () {
$(this).removeClass("highlight");
});
$(this).addClass('highlight');
});
});