javascript条件语句

时间:2012-10-18 20:50:26

标签: javascript if-statement

我有一个侧面导航,点击链接后会执行某项功能:

$(".side-nav ul li a").click(function(event) {
  $(".side-nav").stop().animate({"margin-top": "0px"}, 450);
});

如果页面加载有标签

,我也有相同的功能触发器
if(window.location.hash) {
  $(".side-nav").stop().animate({"margin-top": "0px"}, 450);
}

我正在寻找的是一种将两者结合起来以减少冗余的方法。

如果url有一个hashtag,则触发该函数,否则只有在单击sidenav项时触发该函数。

我似乎无法绕过这个。任何帮助将不胜感激。

谢谢。

2 个答案:

答案 0 :(得分:4)

将代码放入函数中并在两个位置调用它。

function sideNav() {
    $(".side-nav").stop().animate({"margin-top": "0px"}, 450);
}

$(".side-nav ul li a").click(function(event) {
    sideNav();
});

if(window.location.hash) {
    sideNav();
}

如果没有其他代码可以运行,那么你的click处理程序实际上可以像这样重写:

$(".side-nav ul li a").click(sideNav);

如果有任何参数需要传递给sideNav,则此重写将不合适。它们需要在调用函数的单击处理程序中手动传递。

答案 1 :(得分:1)

var animateSideNav = function() {
  $(".side-nav").stop().animate({"margin-top": "0px"}, 450);
}

$(".side-nav ul li a").click(animateSideNav);

if(window.location.hash) {
  animateSideNav();
}