JQuery脚本可能是语法错误

时间:2014-04-22 19:30:12

标签: jquery html css

我不知道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错误? 谢谢!

2 个答案:

答案 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'