gpt4 book ai didi

javascript - 编译多个 hash.location

转载 作者:行者123 更新时间:2023-11-30 11:11:04 24 4
gpt4 key购买 nike

在短脚本中编译多个 window.location.hash 有什么建议吗?我问是因为现在我似乎在重复散列。

这是我的代码:

$(window).on('hashchange load',function()
{
if(window.location.hash && window.location.hash == '#home') {
console.log('home load');
} else if(window.location.hash && window.location.hash == '#about') {
console.log('about load');
} else if(window.location.hash && window.location.hash == '#contact') {
console.log('contact load');
}
});

最佳答案

没有多少可以缩短代码。为了让它更好地流动,有一些调整。首先,您可以将 window.location.hash 值检查移动到它自己的条件,以节省重复它。然后你可以检查每个值:

$(window).on('hashchange load', function() {
if (!window.location.hash)
return;

if (window.location.hash == '#home') {
console.log('home load');
} else if (window.location.hash == '#about') {
console.log('about load');
} else if (window.location.hash == '#contact') {
console.log('contact load');
}
});

要进一步扩展它以使逻辑更具可扩展性,您可以将要在这些散列更改下执行的函数存储在一个对象中,以散列值本身为键,如下所示:

$(window).on('hashchange load', function() {
var hash = window.location.hash;
if (hash && functions.hasOwnProperty(hash))
functions[hash]();
});

var functions = {
'#home': function() {
console.log('home load');
},
'#about': function() {
console.log('about load');
},
'#contact': function() {
console.log('contact load');
}
}

虽然此方法在技术上并不“更短”,但它的可扩展性要高得多。

关于javascript - 编译多个 hash.location,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53666185/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com