diff --git a/js/ditto.js b/js/ditto.js
index 1841abe..b40793d 100644
--- a/js/ditto.js
+++ b/js/ditto.js
@@ -18,6 +18,30 @@ var ditto = {
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 = '
留言
';
var menu = new Array();
@@ -56,16 +80,18 @@ function init_sidebar_section() {
menu.push(this.href.slice(this.href.indexOf('#')));
});
$('#pageup').on('click', function() {
+ var hash = getHash().nav;
for (var i = 0; i < menu.length; i++) {
- if (location.hash === '') break;
- if (menu[i] === location.hash) break;
+ if (hash === '') break;
+ if (menu[i] === '#' + hash) break;
}
location.hash = menu[i - 1]
});
$('#pagedown').on('click', function() {
+ var hash = getHash().nav;
for (var i = 0; i < menu.length; i++) {
- if (location.hash === '') break;
- if (menu[i] === location.hash) break;
+ if (hash === '') break;
+ if (menu[i] === '#' + hash) break;
}
location.hash = menu[i + 1];
});
@@ -260,7 +286,7 @@ function show_loading() {
return loading;
}
-function router() {
+function router() {
var path = location.hash.replace(/#([^#]*)(#.*)?/, './$1');
var hashArr = location.hash.split('#');