From b708a728739e96849f9882dfce6bae9fa0b2851b Mon Sep 17 00:00:00 2001 From: Wu Cheng-Han 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)