1(function($){ 2 3 $(document).ready(function($){ 4 5 var xhr ,timeout; 6 7 $('body').addClass('woocommerce'); 8 9 $('.ajaxsearchform').on('submit',function(e){ 10 e.preventDefault(); 11 }); 12 13 function get_div_id() { 14 var div_id = dokanLiveSearch.themeTags[dokanLiveSearch.currentTheme]; 15 16 if ( div_id === undefined ) { 17 return '#content'; 18 } 19 20 return div_id; 21 } 22 23 $('body').on('keyup', '.dokan-ajax-search-textfield', function(evt){ 24 25 evt.preventDefault(); 26 27 var self = $(this); 28 var nurl = self.closest('form').attr('action'); 29 var textfield = self.val(); 30 var selectfield = self.closest('.ajaxsearchform').find('.dokan-ajax-search-category').val(); 31 32 var ordershort = $('.woocommerce-ordering .orderby').val(); 33 34 if(evt.type != 'change'){ 35 var charCode = (evt.which) ? evt.which : event.keyCode; 36 } 37 38 if (charCode > 64 && charCode < 91 || charCode >
38 96 && charCode < 123 || charCode > 47 && charCode < 58 || charCode == 8 || charCode == 127 ) { 39 for_onkeyup_onchange(evt,self, nurl, textfield, selectfield, ordershort); 40 } 41 }); 42 43 $('body').on('change', '.dokan-ajax-search-category', function(e) { 44 e.preventDefault(); 45 46 var self = $(this); 47 var nurl = self.closest('form').attr('action'); 48 var textfield = self.closest('.ajaxsearchform').find('.dokan-ajax-search-textfield').val(); 49 var selectfield = self.val(); 50 var ordershort = $('.woocommerce-ordering .orderby').val(); 51 52 for_onkeyup_onchange(e, self, nurl, textfield, selectfield, ordershort ); 53 }); 54 55 function for_onkeyup_onchange( evt, self, nurl, textfield, selectfield, ordershort ) { 56 57 if ( ! ordershort ){ 58 ordershort = ''; 59 } 60 61 if(selectfield == 'All' && evt.type == 'change' && ordershort == 'menu_order'){ 62 63 var url = nurl +'?s='+ textfield.replace(/\s/g,"+")+'&post_type=product'; 64 loading_get_request( url, textfield, selectfield ); 65 66 } else if(selectfield == 'All' && ordershort == 'menu_order') { 67 68 var url = nurl +'?s='+ textfield.replace(/\s/g,"+")+'&post_type=product'; 69 loading_get_request( url, textfield, selectfield ); 70 71 } else if(selectfield == 'All' && ordershort != 'menu_order') { 72 73 var url = nurl +'?s='+ textfield.replace(/\s/g,"+")+'&post_type=product&orderby='+ordershort; 74 loading_get_request( url, textfield, selectfield ); 75 76 }else if(selectfield != 'All' && ordershort == 'menu_order'){ 77 78 var url = nurl +'?s='+ textfield.replace(/\s/g,"+")+'&post_type=product&product_cat='+ selectfield; 79 loading_get_request( url, textfield, selectfield ); 80 81 } else { 82 83 var url = nurl +'?s='+ textfield.replace(/\s/g,"+")+'&post_type=product&product_cat='+ selectfield + '&orderby=' + ordershort; 84 loading_get_request( url, textfield, selectfield ); 85 86 } 87 } 88 89 function loading_get_request( url, textfield, selectfield ){ 90 var div_id = get_div_id(); 91 92 $(div_id).append('<div id="loading"><img src="' + dokanLiveSearch.loading_img + '" atr="Loding..."/></div>'); 93 $(div_id).css({'opacity':0.3,'position':'relative'}); 94 $('#loading').show(); 95 96 clearTimeout(timeout); 97 98 if(xhr) { 99 xhr.abort(); 100 } 101 102 timeout = setTimeout(function(){ 103 xhr = get_ajax_request( url, textfield, selectfield ); 104 },150); 105 } 106 107 function get_ajax_request( url, textfield, selectfield ) { 108 109 xhr = $.get(url, function(resp, status) { 110 111 var dom = $(resp).find(get_div_id()).html(); 112 113 $('.dokan-ajax-search-textfield').val( textfield ); 114 $('.dokan-ajax-search-category').val( selectfield ); 115 $(get_div_id()).html(dom); 116 117 $('#loading').hide(); 118 $(get_div_id()).css({'opacity':1,'position':'auto'}); 119 120 $('.woocommerce-ordering').on('change','.orderby',function(e){ 121 e.preventDefault(); 122 123 var self = $(this); 124 var nurl = $('.ajaxsearchform').attr('action'); 125 var textfield = $('.dokan-ajax-search-textfield').val(); 126 var selectfield = $('.dokan-ajax-search-category').val(); 127 var ordershort = self.val(); 128 129 for_onkeyup_onchange(e, self, nurl, textfield, selectfield, ordershort ); 130 131 }); 132 133 }); 134 135 return xhr; 136 } 137 }); 138 139})(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.