好的,所以这就是我想要做的。我有一个具有ID 1到x的navLink类(在这种情况下它是5,但我的想法是,如果需要我可以添加它)。以及选择类下的Div,1Div到xDiv。 div的切换,以及navlinks改变颜色,就像它使用CSS活动标签一样。当我使用Home div并且我不希望其中一个链接以活动状态启动时,这很有效。现在我想要这样做,我需要能够将给定的选择器存储在'active'var中。此外,我试图这样做,当点击导航链接3号,它进入一个不同的页面,我遇到了同样的问题。我对JavaScript有点新意,所以我不确定JS如何存储变量。这是代码:
$(function() {
var active = $('#1');
$('.selection').hide();
$('#1Div').show();
$('.navLink').hover(
function() {
$(this).css("color","#806ac7");
},
function() {
if(this === active) {
$(this).css("color","#961014");
} else {
$(this).css("color","#000000");
}
});
$('.navLink').click(function(e){
active = this;
$('.navLink').css("color","#000000");
$(this).css("color","#961014");
if(this == '#3') {
location.href = "./Contact.html"
} else {
$('.selection').hide();
$('#'+ this.id + 'Div').show();
}
});
});
提前谢谢你们这里的筹码是很有帮助的。
修改
感谢您的帮助。根据请求,这里是一个例子的链接:http://jsfiddle.net/fgj6H/ 一切正常,但navlink 3上的链接仍在寻找帮助。
答案 0 :(得分:0)
我认为您的部分麻烦是ID的必须以HTML4中的字母开头,必须在HTML5中包含至少一个字母。 ID不以数字开头。我建议将您的ID重命名为id =“n1”并将其称为
var active = $("#n1");
看到这个答案 What characters are allowed in DOM IDs?
HTML5规范 http://www.w3.org/TR/html5/dom.html#the-id-attribute
答案 1 :(得分:0)
编辑:
我认为你需要这个
if(this.id == 'n3')
而不是
if(this == '#n3')
原始回答:
我认为这可能是一个范围问题。
本地范围:
var active = $('#1');
全球范围:
active = this
尝试删除第一个var
,使其读取
active = $('#1');
编辑:这是您的代码,其中包含一些注释。
$(function() {
// *** this variable is defined with "var" keyword, meaning it is only available
// in the immediate scope i.e. within the braces (it's more complicated than that)
var active = $('#1');
$('.selection').hide();
$('#1Div').show();
$('.navLink').hover(
function() {
$(this).css("color","#806ac7");
},
function() {
// *** this can only refer to a global variable, as "var active" is not present in here. The global will not get defined till .navLink is clicked.
if(this === active) {
$(this).css("color","#961014");
} else {
$(this).css("color","#000000");
}
});
$('.navLink').click(function(e){
// *** this sets a new global variable "active" and gives it a value
active = this;
$('.navLink').css("color","#000000");
$(this).css("color","#961014");
if(this == '#3') {
location.href = "./Contact.html"
} else {
$('.selection').hide();
$('#'+ this.id + 'Div').show();
}
});
});