Advertisement
Guest User

Untitled

a guest
Aug 22nd, 2019
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.89 KB | None | 0 0
  1. function initAutoComplete() {
  2. var $searchFormWrapper = $('.search-form');
  3. var $searchInput = $searchFormWrapper.find('[name="s"]');
  4. var $searchResults = $('.search-form__results');
  5. var $searchResultsLoader = $('.search-form__results-loader');
  6.  
  7.  
  8. $searchInput.keyup(function() {
  9. var search_query = $searchInput.val();
  10. if (search_query.length < 3) return;
  11.  
  12. // prevent flooding
  13. var me = $(this);
  14. if ( me.data('requestRunning') ) { return; }
  15. me.data('requestRunning', true);
  16.  
  17.  
  18. $('.search-form__results-list').empty();
  19. $searchResults.slideDown(220);
  20.  
  21. setTimeout(function() {
  22. $searchResultsLoader.addClass('show');
  23. },220);
  24.  
  25. $.ajax({
  26. type: 'post',
  27. url: ajaxurl,
  28. dataType: 'json',
  29. data: { action: 'search_results_form', search_query: search_query },
  30. success: function (data) {
  31. $searchResultsLoader.removeClass('show');
  32.  
  33. console.log(data);
  34.  
  35. if (data.result == 1) {
  36. $.each(data.posts, function (key, postObject) {
  37.  
  38. console.log(postObject.post_link);
  39. var htmlResultPost = `<div class="search-form__result" data-post-id="${postObject.post_id}">
  40. <h3 class="search-form__result-title">
  41. <a href="${postObject.post_link.url}" target="${postObject.post_link.target}"><span class="title">${postObject.post_title}</span></a>
  42. <span class="search-form__result-category">${postObject.post_type}</span>
  43. </h3>
  44. <div class="search-form__result-text"><a href="${postObject.post_permalink}">${postObject.post_excerpt}</a></div>
  45. </div>`;
  46. $('.search-form__results-list').append(htmlResultPost);
  47.  
  48. });
  49. }
  50. else {
  51. console.log('Got Result');
  52. $('.search-form__results-list').append('<div>No Results Found</div>');
  53. }
  54.  
  55. },
  56. complete: function() {
  57. me.data('requestRunning', false);
  58. }
  59. }); // eof $.ajax
  60. });
  61.  
  62. // close search results on click outside of element
  63. $(document).mouseup(function(e) {
  64. var container = $searchFormWrapper;
  65. if (!container.is(e.target) && container.has(e.target).length === 0) {
  66. closeSearchResults();
  67. }
  68. });
  69.  
  70. function closeSearchResults() {
  71. $searchResults.slideUp(220);
  72. }
  73.  
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement