1(function($) { 2 "use strict"; 3 $(document).ready(function() { 4 var form = $('form[name="post-search"]'), // Changed form name 5 searchCache = {}, 6 debounceTimeout = null; 7 8 function debounce(func, wait) { 9 return function(...args) { 10 clearTimeout(debounceTimeout); 11 debounceTimeout = setTimeout(() => func.apply(this, args), wait); 12 }; 13 } 14 15 form.each(function() { 16 var currentForm = $(this); 17 var search = currentForm.find('.search'); 18 var resultsContainer = currentForm.next('.luxride_search-results'); 19 var currentQuery = ''; 20 21 search.on('input', debounce(function() { 22 var query = $(this).val(); 23 searchPostsPages(currentForm, resultsContainer, query, currentQuery); // Pass specific form and results container 24 }, 300)); 25 }); 26 27 function searchPostsPages(form, resultsContainer, query, currentQuery) { 28 resultsContainer.html('').removeClass('active'); 29 query = query.trim(); 30 if (query.length >= 3) { 31 resultsContainer.removeClass('empty'); 32 form.find('.search').addClass('loading'); 33 if (query != currentQuery) { 34 if (searchCache[query]) { 35 displayResults(searchCache[query], resultsContainer); 36 } else { 37 $.ajax({
38 url: opt.ajaxUrl, 39 type: 'post', 40 data: { 41 action: 'search_all_posts_pages', // Adjusted action for searching all posts and pages 42 keyword: query 43 }, 44 success: function(data) { 45 currentQuery = query; 46 searchCache[query] = data; 47 displayResults(data, resultsContainer); 48 } 49 }); 50 } 51 } 52 } else { 53 form.find('.search').removeClass('loading'); 54 resultsContainer.empty().removeClass('active').addClass('empty'); 55 } 56 } 57 58 function displayResults(data, resultsContainer) { 59 resultsContainer.prev('.search').removeClass('loading'); 60 if (!resultsContainer.hasClass('empty')) { 61 if (data.length) { 62 resultsContainer.html('<div class="search_inner_box">' + data + '</div>').addClass('active success'); 63 } else { 64 resultsContainer.html(opt.noResults).addClass('active'); 65 } 66 } 67 } 68 69 $(document).on('click', function(e) { 70 if (!$(e.target).closest('.box-header-search').length) { 71 $('.luxride_search-results').removeClass('active'); 72 } 73 }); 74 }); 75})(jQuery);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.