我有以下代码,如果网址中有#hash,则会向主体添加一个类 - 但只有在我重新加载浏览器时它才有效。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script>
$(document).ready(function() {
if (window.location.href.indexOf('#login') != -1) {
$(document.body).addClass('modalOpen');
}
});
</script>
不确定我做错了什么?当有人到达homepage.com#login
时,我希望它添加课程提前致谢! 安迪
答案 0 :(得分:1)
只使用$('body').addClass('modalOpen');
而不使用$(document.body).addClass('modalOpen');
因为body
是一个标记,而不是.body
中定义的类。
更改代码
$(document).ready(function() {
if (window.location.href.indexOf('#login') != -1) {
$('body').addClass('modalOpen');
}
});
答案 1 :(得分:1)
问题是您的代码在加载document
时运行,如果用户到达#login,则document
将不会再次加载。解决方案是单独定义function
function hashChange() {
if (window.location.href.indexOf('#login') != -1) {
$(document.body).addClass('modalOpen');
}
}
并在onhashchange
事件中调用它:
window.onhashchange = function() {
hashChange();
};
您也可以在加载页面时调用它。