我不知道JQuery,我有一个script.js文件:
$(document).ready(function()
{
var main_nav = $("#main-nav");
var main_section = $("#main-section");
var main_footer = $("#main-footer");
var main_nav_position = main_nav.position();
$(window).scroll(function()
{
if ($(window).scrollTop() >= main_nav_position.top)
{
main_nav.addClass("main-nav-sticky");
main_section.addClass("sticky-adjust");
main_footer.addClass("sticky-adjust");
}
else
{
main_nav.removeClass("main-nav-sticky");
main_section.removeClass("sticky-adjust");
main_footer.removeClass("sticky-adjust");
}
});
});
$(document).ready(function()
{
switch (window.location.pathname)
{
case 'index.html':
$('#shop-button').attr('id','shop-button-disabled');
break;
case 'staff.html':
$('#staff-button').attr('id','staff-button-disabled');
break;
case 'contact.html':
$('#contact-button').attr('id','contact-button-disabled');
break;
}
});
第一个脚本效果很好,但第二个脚本没有。我不知道这是因为$(document).ready(function()还是因为switch-case istance。是否有问题或者是CSS / HTML错误? 谢谢!
答案 0 :(得分:2)
window.location.pathname
返回的值始终以/
开头,因此您应更改switch语句以反映此
$(document).ready(function()
{
switch (window.location.pathname)
{
case '/index.html':
$('#shop-button').attr('id','shop-button-disabled');
break;
case '/staff.html':
$('#staff-button').attr('id','staff-button-disabled');
break;
case '/contact.html':
$('#contact-button').attr('id','contact-button-disabled');
break;
}
});
答案 1 :(得分:0)
window.location.pathname
可能包含前导/
此外,如果您使用默认值而不重定向,则可能只有/
例如,如果您浏览到http://www.google.com,window.location.pathname将为'/',但如果您转到http://www.google.com/webhp,即使它是同一页面,路径名也将是' / webhp'