为什么 removeClass 不起作用?
Why is removeClass not working?
我猜这很简单,但它一直让我发疯!下面是我的 jquery 代码 这是我的 Fiddle
$("#Headerhome").addClass('menuSelected').siblings().removeClass('menuSelected');
$('#Headerhome').children('#Site-icon-1').addClass('SiteIconHover').siblings().removeClass('SiteIconHover');
$("#HeaderSites").on('click', function () {
$(this).addClass('menuSelected').siblings().removeClass('menuSelected');
$(this).children('#Site-icon-2').addClass('SiteIconHover2').siblings().removeClass('SiteIconHover2');
});
$("#HeaderApps").on('click', function () {
$(this).addClass('menuSelected').siblings().removeClass('menuSelected');
$(this).children('#Site-icon-3').addClass('SiteIconHover3').siblings().removeClass('SiteIconHover3');
});
尝试一些这个选项 mate ,所有这些选项都以某种方式或其他方式工作,也许它们适合您正在寻找的内容
$("#item").removeClass();
$("#item").removeAttr('class');
$("#item").attr('class', '');
问题是您正在尝试寻找没有兄弟姐妹的 div 的兄弟姐妹。我已经改变了一些 CSS 和 JS。这应该可以满足您的要求。
JS:
$("#Headerhome").addClass('menuSelected').siblings().removeClass('menuSelected');
$('#Headerhome').children('#Site-icon-1').addClass('SiteIconHover');
$("#Headerhome").on('click', function () {
$(this).addClass('menuSelected').siblings().removeClass('menuSelected');
$('div').removeClass('SiteIconHover');
$(this).children('#Site-icon-1').addClass('SiteIconHover');
});
$("#HeaderSites").on('click', function () {
$(this).addClass('menuSelected').siblings().removeClass('menuSelected');
$('div').removeClass('SiteIconHover');
$(this).children('#Site-icon-2').addClass('SiteIconHover');
});
$("#HeaderApps").on('click', function () {
$(this).addClass('menuSelected').siblings().removeClass('menuSelected');
$('div').removeClass('SiteIconHover');
$(this).children('#Site-icon-3').addClass('SiteIconHover');
});
CSS:已更新
#Site-icon-1 {
background-color:#000;
width:25px;
height:25px;
float:left;
margin-right:15px;
margin-top:12px;
margin-left:5px;
}
#Site-icon-1.SiteIconHover {
background-color:#00a9ff;
width: 25px;
height: 25px;
float: left;
margin-right: 15px;
margin-top: 12px;
margin-left: 5px;}
#Site-icon-2 {
background-color:#000;
width: 25px;
height: 25px;
float: left;
margin-right: 15px;
margin-top: 12px;
margin-left: 5px;
}
#Site-icon-2.SiteIconHover {
background-color:green;
width: 25px;
height: 25px;
float: left;
margin-right: 15px;
margin-top: 12px;
margin-left: 5px;}
#Site-icon-3 {
background-color:#000;
width: 25px;
height: 25px;
float: left;
margin-right: 15px;
margin-top: 12px;
margin-left: 5px;
}
#Site-icon-3.SiteIconHover {
background-color:red;
width: 25px;
height: 25px;
float: left;
margin-right: 15px;
margin-top: 12px;
margin-left: 5px;}
#Headerhome, #HeaderSites, #HeaderApps {
background: #254661;
font-weight: normal;
color: #eeeeee;
box-sizing: border-box;
outline: 0;
line-height:50px;
text-decoration: none;
font-size: 100%;
list-style: none;
width:240px;
height:50px;
display: block;
cursor: pointer;
margin-top: 2px;
margin-left:-20px;
margin-right:0px;
padding-left:20px;
font-family:'Segoe UI';
}
#HeaderSites.menuSelected {
border-left: 3px solid #26b3f7;
background: #18374f;
}
#Headerhome.menuSelected {
border-left: 3px solid #26b3f7;
background: #18374f;
}
#HeaderApps.menuSelected {
border-left: 3px solid #26b3f7;
background: #18374f;
}
演示: JSFiddle 已更新
我改进了你的代码。您可以编写更少的代码。
往下看:
JS:
$(document).ready(function(){
$('.item').on('click', function(){
$('.item').removeClass('menuSelected');
$('.item').children('div').removeClass('SiteIconHover');
$(this).addClass('menuSelected');
$(this).children('div').addClass('SiteIconHover');
});
});
我还更新了您的代码,这样您就可以查看样式的变化,因为您可以拥有 css
代码。
https://jsfiddle.net/gon250/xwg0Lv9d/6/
希望对您有所帮助。
你的代码有很多问题,你也需要改进CSS,看看fiddle,我试着改进你的代码,希望对你有帮助
我把你的js改成了下面的
function selectMenu(toSelect) {
toSelect.addClass('menuSelected').siblings().removeClass('menuSelected');
toSelect.children().addClass('SiteIconHover');
toSelect.siblings().children().removeClass('SiteIconHover');
}
selectMenu($("#Headerhome"));
$("#SideNav").on('click', function(event) {
if(event.target.id !== 'SideNav')
selectMenu($(event.target));
event.stopPropagation();
});
我已经在下面更新了您的代码:
$("#Headerhome").addClass('menuSelected');
$("#Headerhome").on('click', function () {
var thisSelected = $(this).hasClass('menuSelected');
if(!thisSelected) {
$('#HeaderSites, #HeaderApps, #Site-icon-1, #Site-icon-3').removeAttr('class');
$(this).addClass('menuSelected');
$('#Site-icon-1').addCass('SiteIconHover2');
} else {
$(this).removeAttr('class');
}
});
$("#HeaderSites").on('click', function () {
var thisSelected = $(this).hasClass('menuSelected');
if(!thisSelected) {
$('#Headerhome, #HeaderApps, #Site-icon-1, #Site-icon-3').removeAttr('class');
$(this).addClass('menuSelected');
$('#Site-icon-2').addCass('SiteIconHover2');
} else {
$(this).removeAttr('class');
}
});
$("#HeaderApps").on('click', function () {
var thisSelected = $(this).hasClass('menuSelected');
if(!thisSelected) {
$('#Headerhome, #HeaderSites, #Site-icon-1, #Site-icon-2').removeAttr('class');
$(this).addClass('menuSelected');
$('#Site-icon-3').addCass('SiteIconHover3');
} else {
$(this).removeAttr('class');
}
});
您还可以在此处查看 Fiddle link:https://jsfiddle.net/xwg0Lv9d/7/
我猜这很简单,但它一直让我发疯!下面是我的 jquery 代码 这是我的 Fiddle
$("#Headerhome").addClass('menuSelected').siblings().removeClass('menuSelected');
$('#Headerhome').children('#Site-icon-1').addClass('SiteIconHover').siblings().removeClass('SiteIconHover');
$("#HeaderSites").on('click', function () {
$(this).addClass('menuSelected').siblings().removeClass('menuSelected');
$(this).children('#Site-icon-2').addClass('SiteIconHover2').siblings().removeClass('SiteIconHover2');
});
$("#HeaderApps").on('click', function () {
$(this).addClass('menuSelected').siblings().removeClass('menuSelected');
$(this).children('#Site-icon-3').addClass('SiteIconHover3').siblings().removeClass('SiteIconHover3');
});
尝试一些这个选项 mate ,所有这些选项都以某种方式或其他方式工作,也许它们适合您正在寻找的内容
$("#item").removeClass();
$("#item").removeAttr('class');
$("#item").attr('class', '');
问题是您正在尝试寻找没有兄弟姐妹的 div 的兄弟姐妹。我已经改变了一些 CSS 和 JS。这应该可以满足您的要求。
JS:
$("#Headerhome").addClass('menuSelected').siblings().removeClass('menuSelected');
$('#Headerhome').children('#Site-icon-1').addClass('SiteIconHover');
$("#Headerhome").on('click', function () {
$(this).addClass('menuSelected').siblings().removeClass('menuSelected');
$('div').removeClass('SiteIconHover');
$(this).children('#Site-icon-1').addClass('SiteIconHover');
});
$("#HeaderSites").on('click', function () {
$(this).addClass('menuSelected').siblings().removeClass('menuSelected');
$('div').removeClass('SiteIconHover');
$(this).children('#Site-icon-2').addClass('SiteIconHover');
});
$("#HeaderApps").on('click', function () {
$(this).addClass('menuSelected').siblings().removeClass('menuSelected');
$('div').removeClass('SiteIconHover');
$(this).children('#Site-icon-3').addClass('SiteIconHover');
});
CSS:已更新
#Site-icon-1 {
background-color:#000;
width:25px;
height:25px;
float:left;
margin-right:15px;
margin-top:12px;
margin-left:5px;
}
#Site-icon-1.SiteIconHover {
background-color:#00a9ff;
width: 25px;
height: 25px;
float: left;
margin-right: 15px;
margin-top: 12px;
margin-left: 5px;}
#Site-icon-2 {
background-color:#000;
width: 25px;
height: 25px;
float: left;
margin-right: 15px;
margin-top: 12px;
margin-left: 5px;
}
#Site-icon-2.SiteIconHover {
background-color:green;
width: 25px;
height: 25px;
float: left;
margin-right: 15px;
margin-top: 12px;
margin-left: 5px;}
#Site-icon-3 {
background-color:#000;
width: 25px;
height: 25px;
float: left;
margin-right: 15px;
margin-top: 12px;
margin-left: 5px;
}
#Site-icon-3.SiteIconHover {
background-color:red;
width: 25px;
height: 25px;
float: left;
margin-right: 15px;
margin-top: 12px;
margin-left: 5px;}
#Headerhome, #HeaderSites, #HeaderApps {
background: #254661;
font-weight: normal;
color: #eeeeee;
box-sizing: border-box;
outline: 0;
line-height:50px;
text-decoration: none;
font-size: 100%;
list-style: none;
width:240px;
height:50px;
display: block;
cursor: pointer;
margin-top: 2px;
margin-left:-20px;
margin-right:0px;
padding-left:20px;
font-family:'Segoe UI';
}
#HeaderSites.menuSelected {
border-left: 3px solid #26b3f7;
background: #18374f;
}
#Headerhome.menuSelected {
border-left: 3px solid #26b3f7;
background: #18374f;
}
#HeaderApps.menuSelected {
border-left: 3px solid #26b3f7;
background: #18374f;
}
演示: JSFiddle 已更新
我改进了你的代码。您可以编写更少的代码。
往下看:
JS:
$(document).ready(function(){
$('.item').on('click', function(){
$('.item').removeClass('menuSelected');
$('.item').children('div').removeClass('SiteIconHover');
$(this).addClass('menuSelected');
$(this).children('div').addClass('SiteIconHover');
});
});
我还更新了您的代码,这样您就可以查看样式的变化,因为您可以拥有 css
代码。
https://jsfiddle.net/gon250/xwg0Lv9d/6/
希望对您有所帮助。
你的代码有很多问题,你也需要改进CSS,看看fiddle,我试着改进你的代码,希望对你有帮助
我把你的js改成了下面的
function selectMenu(toSelect) {
toSelect.addClass('menuSelected').siblings().removeClass('menuSelected');
toSelect.children().addClass('SiteIconHover');
toSelect.siblings().children().removeClass('SiteIconHover');
}
selectMenu($("#Headerhome"));
$("#SideNav").on('click', function(event) {
if(event.target.id !== 'SideNav')
selectMenu($(event.target));
event.stopPropagation();
});
我已经在下面更新了您的代码:
$("#Headerhome").addClass('menuSelected');
$("#Headerhome").on('click', function () {
var thisSelected = $(this).hasClass('menuSelected');
if(!thisSelected) {
$('#HeaderSites, #HeaderApps, #Site-icon-1, #Site-icon-3').removeAttr('class');
$(this).addClass('menuSelected');
$('#Site-icon-1').addCass('SiteIconHover2');
} else {
$(this).removeAttr('class');
}
});
$("#HeaderSites").on('click', function () {
var thisSelected = $(this).hasClass('menuSelected');
if(!thisSelected) {
$('#Headerhome, #HeaderApps, #Site-icon-1, #Site-icon-3').removeAttr('class');
$(this).addClass('menuSelected');
$('#Site-icon-2').addCass('SiteIconHover2');
} else {
$(this).removeAttr('class');
}
});
$("#HeaderApps").on('click', function () {
var thisSelected = $(this).hasClass('menuSelected');
if(!thisSelected) {
$('#Headerhome, #HeaderSites, #Site-icon-1, #Site-icon-2').removeAttr('class');
$(this).addClass('menuSelected');
$('#Site-icon-3').addCass('SiteIconHover3');
} else {
$(this).removeAttr('class');
}
});
您还可以在此处查看 Fiddle link:https://jsfiddle.net/xwg0Lv9d/7/