From a781b6a22bbd5a2fb2b7900b216b2054da80b9ca Mon Sep 17 00:00:00 2001 From: Hakim El Hattab Date: Mon, 19 Jun 2017 09:43:29 +0200 Subject: [PATCH] clear existing matches when searching for empty string #1909 --- plugin/search/search.js | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/plugin/search/search.js b/plugin/search/search.js index 28c2c5f..b0be2be 100644 --- a/plugin/search/search.js +++ b/plugin/search/search.js @@ -138,19 +138,27 @@ function Hilitor(id, tag) if (searchboxDirty) { var searchstring = document.getElementById("searchinput").value; - //find the keyword amongst the slides - myHilitor = new Hilitor("slidecontent"); - matchedSlides = myHilitor.apply(searchstring); - currentMatchedIndex = 0; + if (searchstring === '') { + if(myHilitor) myHilitor.remove(); + matchedSlides = null; + } + else { + //find the keyword amongst the slides + myHilitor = new Hilitor("slidecontent"); + matchedSlides = myHilitor.apply(searchstring); + currentMatchedIndex = 0; + } } - //navigate to the next slide that has the keyword, wrapping to the first if necessary - if (matchedSlides.length && (matchedSlides.length <= currentMatchedIndex)) { - currentMatchedIndex = 0; - } - if (matchedSlides.length > currentMatchedIndex) { - Reveal.slide(matchedSlides[currentMatchedIndex].h, matchedSlides[currentMatchedIndex].v); - currentMatchedIndex++; + if (matchedSlides) { + //navigate to the next slide that has the keyword, wrapping to the first if necessary + if (matchedSlides.length && (matchedSlides.length <= currentMatchedIndex)) { + currentMatchedIndex = 0; + } + if (matchedSlides.length > currentMatchedIndex) { + Reveal.slide(matchedSlides[currentMatchedIndex].h, matchedSlides[currentMatchedIndex].v); + currentMatchedIndex++; + } } }