我正在尝试为onepageweb nav编写我的脚本。主要目标是在点击时更改选择器,第一部分工作正常,但第一个li是站点徽标,所以当我点击徽标时,我想添加.select
秒li。 :
$(document).ready(function (){
$(".main-nav li").click(function () {
if (this = $(".main-nav li:first-of-type")) {
$(this).next().addClass("selected")
.siblings().removeClass("selected");
} else {
$(this).addClass("selected")
.siblings().removeClass("selected");
}
});
});
并且这种情况不起作用
答案 0 :(得分:3)
两个问题:
您正在使用=
进行比较(if (this = $(".main-nav li:first-of-type"))
)。 =
始终是分配。由于您无法分配到this
,这是一个错误,不会发生任何其他事情。
如果您在那里使用==
或===
,则无效,因为this
将引用DOM元素,但返回值为{{1始终是一个jQuery对象。
你可能想要
$()
...使用is
来测试被点击的元素是否与给定的选择器匹配。
附注:if ($(this).is(".main-nav li:first-of-type"))
应该有效,但由于:first-of-type
元素只能 包含ul
个元素,li
也可以。{ / p>
直播示例:
:first
$(document).ready(function() {
$(".main-nav li").click(function() {
if ($(this).is(".main-nav li:first-of-type")) {
$(this).next().addClass("selected")
.siblings().removeClass("selected");
} else {
$(this).addClass("selected")
.siblings().removeClass("selected");
}
});
});
.selected {
color: red;
}