From b708a728739e96849f9882dfce6bae9fa0b2851b Mon Sep 17 00:00:00 2001
From: Wu Cheng-Han <jacky_cute0808@hotmail.com>
Date: Sun, 18 Sep 2016 16:28:07 +0800
Subject: [PATCH] Fix the element selector in smoothHashScroll might contain
 special characters and cause the Syntax error

---
 public/js/extra.js | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/public/js/extra.js b/public/js/extra.js
index 714e205..8fa99ce 100644
--- a/public/js/extra.js
+++ b/public/js/extra.js
@@ -635,12 +635,15 @@ function smoothHashScroll() {
             $element.on('click', function (e) {
                 // store hash
                 var hash = decodeURIComponent(this.hash);
-                if ($(hash).length <= 0) return;
+                // escape special characters in jquery selector
+                var $hash = $(hash.replace(/(:|\.|\[|\]|,)/g, "\\$1"));
+                // return if no element been selected
+                if ($hash.length <= 0) return;
                 // prevent default anchor click behavior
                 e.preventDefault();
                 // animate
                 $('body, html').stop(true, true).animate({
-                    scrollTop: $(hash).offset().top
+                    scrollTop: $hash.offset().top
                 }, 100, "linear", function () {
                     // when done, add hash to url
                     // (default click behaviour)