mirror of
https://github.com/ruanyf/es6tutorial.git
synced 2025-05-24 10:22:23 +00:00
fix: 修复链接中有双层锚点时上下一章按钮死链
This commit is contained in:
parent
8ad3c20f5f
commit
797ee7c38a
36
js/ditto.js
36
js/ditto.js
@ -18,6 +18,30 @@ var ditto = {
|
|||||||
run: initialize
|
run: initialize
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取当前hash
|
||||||
|
*
|
||||||
|
* @param {string} hash 要解析的hash,默认取当前页面的hash,如: nav#类目 => {nav:nav, anchor:类目}
|
||||||
|
* @description 分导航和页面锚点
|
||||||
|
* @return {Object} {nav:导航, anchor:页面锚点}
|
||||||
|
*/
|
||||||
|
var getHash = function (hash) {
|
||||||
|
hash = hash || window.location.hash.substr(1);
|
||||||
|
|
||||||
|
if (!hash) {
|
||||||
|
return {
|
||||||
|
nav: '',
|
||||||
|
anchor: ''
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
hash = hash.split('#');
|
||||||
|
return {
|
||||||
|
nav: hash[0],
|
||||||
|
anchor: decodeURIComponent(hash[1] || '')
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
var disqusCode = '<h3>留言</h3><div id="disqus_thread"></div>';
|
var disqusCode = '<h3>留言</h3><div id="disqus_thread"></div>';
|
||||||
var menu = new Array();
|
var menu = new Array();
|
||||||
|
|
||||||
@ -56,16 +80,18 @@ function init_sidebar_section() {
|
|||||||
menu.push(this.href.slice(this.href.indexOf('#')));
|
menu.push(this.href.slice(this.href.indexOf('#')));
|
||||||
});
|
});
|
||||||
$('#pageup').on('click', function() {
|
$('#pageup').on('click', function() {
|
||||||
|
var hash = getHash().nav;
|
||||||
for (var i = 0; i < menu.length; i++) {
|
for (var i = 0; i < menu.length; i++) {
|
||||||
if (location.hash === '') break;
|
if (hash === '') break;
|
||||||
if (menu[i] === location.hash) break;
|
if (menu[i] === '#' + hash) break;
|
||||||
}
|
}
|
||||||
location.hash = menu[i - 1]
|
location.hash = menu[i - 1]
|
||||||
});
|
});
|
||||||
$('#pagedown').on('click', function() {
|
$('#pagedown').on('click', function() {
|
||||||
|
var hash = getHash().nav;
|
||||||
for (var i = 0; i < menu.length; i++) {
|
for (var i = 0; i < menu.length; i++) {
|
||||||
if (location.hash === '') break;
|
if (hash === '') break;
|
||||||
if (menu[i] === location.hash) break;
|
if (menu[i] === '#' + hash) break;
|
||||||
}
|
}
|
||||||
location.hash = menu[i + 1];
|
location.hash = menu[i + 1];
|
||||||
});
|
});
|
||||||
@ -260,7 +286,7 @@ function show_loading() {
|
|||||||
return loading;
|
return loading;
|
||||||
}
|
}
|
||||||
|
|
||||||
function router() {
|
function router() {
|
||||||
var path = location.hash.replace(/#([^#]*)(#.*)?/, './$1');
|
var path = location.hash.replace(/#([^#]*)(#.*)?/, './$1');
|
||||||
|
|
||||||
var hashArr = location.hash.split('#');
|
var hashArr = location.hash.split('#');
|
||||||
|
Loading…
x
Reference in New Issue
Block a user