我正在尝试理解location.hash在jQuery中是如何工作的,为此,我试图从最基本的形式开始,然后一旦我做对了,我就会更深入,但遗憾的是我是已经坚持我认为应该是一件简单的事情。
这是我创建的代码,修改了我在帖子中找到的其他代码:
$(document).ready(function(){
$("body").css("background-color", "#FF0");
$(window).bind( 'hashchange', function( event ) {
if (window.location.hash == "red"){
$("body").addClass("red");
} else if (window.location.hash == "green") {
$("body").addClass("green");
}
event.preventDefault();
});
$(window).trigger("hashchange");
});
这是页面http://dlacrem.16mb.com/dlatest/hash.html
现在,正如我所说的,我正在努力学习,所以10行中可能有80个错误:但是,当我去hash.html#red时,不应该把红色类加到身上吗?
关心并感谢我的任何帮助!
答案 0 :(得分:2)
window.location.hash包含哈希符号。
if (window.location.hash == "#red"){
$("body").addClass("red");
} else if (window.location.hash == "#green") {
$("body").addClass("green");
}
此外,您设置为使身体变黄的内联样式将覆盖您对课程所做的任何操作(除非您使用!重要,但不要这样做!),所以您想要在样式表中使其变为黄色而不是内联。
然而,您会注意到,一旦您将其变为红色,然后变为绿色,它将保持绿色。这是因为你从来没有真正删除过类,所以它采用了具有最高特异性的类(在这种情况下为绿色,因为它在样式表中是最后一个。)为了解决这个问题,你还要删除另一个类。