[英]jquery - How to highlight a menu link when clicked?
我有一个带有链接的菜单。 链接放置在表格内。 每个链接都放在<td>
。 我想在<td>
激活时更改其背景颜色。 我将如何在jquery中做到这一点?
这是我的代码的链接: http : //jsfiddle.net/DdG8m/ 。
我的问题是,如果单击链接之一,则整个表格的背景颜色会改变。 请帮忙。 提前致谢。
创建一个名为.highlight
的类,并将其设置为所需的背景色,然后相应地添加/删除该类: http : //jsfiddle.net/DdG8m/4/
$(function() {
$('#mainMenu td').click(function(e) {
$('#mainMenu td').removeClass('highlight');
$(this).addClass('highlight');
});
});
注意:您将需要使用!important
您.highlight
类重写任何默认的。
您应该引用当前元素,而不是所有与选择器匹配的元素。
$("#mainMenu td").click(function() {
$(this).css('background-color', '#EDEDED');
});
我还建议您使用CSS类,而不是通过这种方式设置CSS属性。
就像那样;
$("#mainMenu td").click(function() {
$(this).addClass('selected');
});
和...一起;
#mainMenu td.selected {
background-color: #EDEDED;
}
编辑
psuedo选择器:visited
仅应在链接( a
)上使用,并且不应过多使用table
s。
创建了一个jsFiddle ,它使用ul
列表而不是表格和display: block
链接上的display: block
来填充整个父li
元素。
我还使用event.preventDefault()来不跟随链接,因为这可能会重新加载页面,并且不包括所选/活动链接的类。 如果您想点击链接并重新加载页面,则应使用服务器端代码来呈现该HTML。
$("#mainMenu a").click(function(e) {
e.preventDefault(); // Don´t follow the link
$("#mainMenu a").removeClass('selected'); // Remove class on all menu items
$(this).addClass('selected'); // Add class to current menu item
});
您当前的代码是
$(function() {
$("#mainMenu td").click(function() {
$("#mainMenu td").css('background-color', '#EDEDED');
});
});
这将更改表中的所有tds。 而是在函数内使用$(this)
选择触发click事件的元素。
$(function() {
$("#mainMenu td").click(function() {
$(this).css('background-color', '#EDEDED');
});
});
要使其他选项恢复原状,请使用siblings()
选择器选择所有tds(单击的选项除外)。
$(function() {
$("#mainMenu td").click(function() {
$(this).css('background-color', '#EDEDED')
.siblings().css('background-color', '#FFFFFF');
});
});
尝试这个:
$(function() {
$('td').click(function() {
$(this).css('backgroundColor', '#EDEDED');
});
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.