Backend for songs.zachdecook.com
* Table of Contents Filter: Don't depend on jQuery
| -rw-r--r-- | laravel/resources/js/toc-filter.js | 36 | ||||
| -rw-r--r-- | laravel/resources/views/welcome.blade.php | 2 |
2 files changed, 20 insertions, 18 deletions
diff --git a/laravel/resources/js/toc-filter.js b/laravel/resources/js/toc-filter.js index 4db7641..f708681 100644 --- a/laravel/resources/js/toc-filter.js +++ b/laravel/resources/js/toc-filter.js @@ -1,20 +1,22 @@ -// @license magnet:?xt=urn:btih:b8999bbaf509c08d127678643c515b9ab0836bae&dn=ISC.txt -$(function(){ - $("#toc-filter").bind("change paste keyup", toc_filter); -}); +// @license magnet:?xt=urn:btih:b8999bbaf509c08d127678643c515b9ab0836bae&dn=ISC.txt ISC +function init_toc_filter() { + let el = document.getElementById("toc-filter"); + el.addEventListener("change", toc_filter); + el.addEventListener("paste", toc_filter); + el.addEventListener("keyup", toc_filter); +} -function toc_filter( event ) -{ - var val = $(this).val().toLowerCase(); - $("#toc li").each(function(){ - if($(this).text().toLowerCase().indexOf(val) == -1) - { - $(this).hide(); - } - else - { - $(this).show(); - } - }); +function toc_filter(event) { + const val = this.value.toLowerCase(); + let els = document.querySelectorAll("#toc li"); + for (let i = 0; i < els.length; i++) { + if (els[i].textContent.toLowerCase().indexOf(val) == -1) { + els[i].style.display = "none"; + } else { + els[i].style.display = "block"; + } + } } + +init_toc_filter(); // @license-end diff --git a/laravel/resources/views/welcome.blade.php b/laravel/resources/views/welcome.blade.php index f241d95..cc0e5d3 100644 --- a/laravel/resources/views/welcome.blade.php +++ b/laravel/resources/views/welcome.blade.php @@ -16,6 +16,6 @@ </a> @endforeach </ul> - <script src='js/toc-filter.js'></script> + <script src='js/toc-filter.js?nojq' defer></script> </div> @endsection |