javascript条件语句

javascript条件语句,javascript,if-statement,Javascript,If Statement,我有一个侧边导航,单击链接后,将执行特定功能: $(".side-nav ul li a").click(function(event) { $(".side-nav").stop().animate({"margin-top": "0px"}, 450); }); 如果页面加载有一个hashtag,我也有这个相同的函数触发器 if(window.location.hash) { $(".side-nav").stop().animate({"margin-top": "0px"},

我有一个侧边导航,单击链接后,将执行特定功能:

$(".side-nav ul li a").click(function(event) {
  $(".side-nav").stop().animate({"margin-top": "0px"}, 450);
});
如果页面加载有一个hashtag,我也有这个相同的函数触发器

if(window.location.hash) {
  $(".side-nav").stop().animate({"margin-top": "0px"}, 450);
}
我正在寻找的是一种将两者结合起来以减少冗余的方法

如果url具有哈希标记,则触发函数,否则仅在单击sidenav项时触发函数

我似乎无法对这件事保持清醒。任何帮助都将不胜感激


谢谢。

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

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

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

if(window.location.hash) {
    sideNav();
}
如果没有其他代码运行,您的
单击处理程序实际上可以像这样重写:

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

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

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

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

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

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

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

if(window.location.hash) {
  animateSideNav();
}
如果没有其他代码运行,您的
单击处理程序实际上可以像这样重写:

$(".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();
}