jquerylocalscroll和hashtags

jquerylocalscroll和hashtags,jquery,Jquery,我使用的是localscroll jquery插件,当有人在url末尾输入url时,我希望有一个安全选项,因此我编写了以下代码行: if (window.location.hash == "#home") { $('#menu-main a').removeClass('sel'); $("#a1").addClass("sel"); $('#about,#collections,#contact,#brides,#gallery').anim

我使用的是localscroll jquery插件,当有人在url末尾输入url时,我希望有一个安全选项,因此我编写了以下代码行:

        if (window.location.hash == "#home") {
      $('#menu-main a').removeClass('sel');
      $("#a1").addClass("sel");
      $('#about,#collections,#contact,#brides,#gallery').animate({ opacity: 0 }, 0);
    } else if (window.location.hash == "#about") {
      $('#menu-main a').removeClass('sel');
      $("#a2").addClass("sel");
      $('#home,#collections,#contact,#brides,#gallery').animate({ opacity: 0 }, 0);
    } else if (window.location.hash == "#collections") {
      $('#menu-main a').removeClass('sel');
      $("#a3").addClass("sel");
      $('#about, #home, #contact, #brides, #gallery').animate({ opacity: 0 }, 0);
    } else if (window.location.hash == "#brides") {
      $('#menu-main a').removeClass('sel');
      $("#a4").addClass("sel");
      $('#about, #collections, #contact, #home, #gallery').animate({ opacity: 0 }, 0);
    } else if (window.location.hash == "#gallery") {
      $('#menu-main a').removeClass('sel');
      $("#a5").addClass("sel");
      $('#about, #collections, #home, #contact, #brides').animate({ opacity: 0 }, 0);
    } else if (window.location.hash == "#contact") {
      $('#menu-main a').removeClass('sel');
      $("#a6").addClass("sel");
      $('#about, #collections, #home, #brides, #gallery').animate({ opacity: 0 }, 0);
    } else if (window.location.hash == "") {
      $('#menu-main a').removeClass('sel');
      $("#a1").addClass("sel");
      $('#about,#collections,#contact,#brides,#gallery').animate({ opacity: 0 }, 0);
    }
但是,肯定有更好的解决方案,可能有一些foreach函数,因为我不是jquery专家,我想征求您的意见

谢谢,玛特

function makeSelect(){
var hash = window.location.hash;
$("#menu-main a").removeClass('sel');
$("#"+hash).addClass("sel");
$('#about,#collections,#contact,#brides,#gallery').animate({ opacity: 0 }, 0);
}
如果可以将对象名称更改为哈希值,或者为它们创建哈希映射,则可以使用类似的方法


如果您可以将对象名称更改为散列值,或者为它们创建散列映射,则可以使用类似的方法。如果有人对我的解决方案感兴趣,请执行以下操作:

var hash = window.location.hash;
var cats = {}; 

cats['#home'] = 'a1'; 
cats['#about'] = 'a2'; 
cats['#collections'] = 'a3'; 
cats['#brides'] = 'a4'; 
cats['#gallery'] = 'a5'; 
cats['#contact'] = 'a6'; 
cats[''] = 'a1'; 

$("#menu-main a").removeClass('sel');
$("#" + cats[hash]).addClass("sel");

if (!hash){
  $('#about,#collections,#contact,#brides,#gallery').animate({ opacity: 0 }, 0);  
} else {
  $.each(cats, function(key, value) {
    if (key != hash){
        $(key).animate({ opacity: 0 }, 0);
    }
  });
}

我解决了它,如果有人对我的解决方案感兴趣:

var hash = window.location.hash;
var cats = {}; 

cats['#home'] = 'a1'; 
cats['#about'] = 'a2'; 
cats['#collections'] = 'a3'; 
cats['#brides'] = 'a4'; 
cats['#gallery'] = 'a5'; 
cats['#contact'] = 'a6'; 
cats[''] = 'a1'; 

$("#menu-main a").removeClass('sel');
$("#" + cats[hash]).addClass("sel");

if (!hash){
  $('#about,#collections,#contact,#brides,#gallery').animate({ opacity: 0 }, 0);  
} else {
  $.each(cats, function(key, value) {
    if (key != hash){
        $(key).animate({ opacity: 0 }, 0);
    }
  });
}