我有一个侧面导航,点击链接后会执行某项功能:
$(".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项时触发该函数。
我似乎无法绕过这个。任何帮助将不胜感激。
谢谢。
答案 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();
}