diff --git a/jquery.auto-complete.js b/jquery.auto-complete.js index 4f4a8de..b84cce9 100644 --- a/jquery.auto-complete.js +++ b/jquery.auto-complete.js @@ -141,7 +141,7 @@ if (part in that.cache && !that.cache[part].length) { suggest([]); return; } } } - that.timer = setTimeout(function(){ o.source(val, suggest) }, o.delay); + that.timer = setTimeout(function(){ o.source(val, suggest, that) }, o.delay); } } else { that.last_val = val; diff --git a/jquery.auto-complete.min.js b/jquery.auto-complete.min.js index 67ac3aa..cd3c8b9 100644 --- a/jquery.auto-complete.min.js +++ b/jquery.auto-complete.min.js @@ -1,3 +1 @@ -// jQuery autoComplete v1.0.6 -// https://github.com/Pixabay/jQuery-autoComplete -!function(e){e.fn.autoComplete=function(t){var o=e.extend({},e.fn.autoComplete.defaults,t);return"string"==typeof t?(this.each(function(){var o=e(this);"destroy"==t&&(e(window).off("resize.autocomplete",o.updateSC),o.off("blur.autocomplete focus.autocomplete keydown.autocomplete keyup.autocomplete"),o.data("autocomplete")?o.attr("autocomplete",o.data("autocomplete")):o.removeAttr("autocomplete"),e(o.data("sc")).remove(),o.removeData("sc").removeData("autocomplete"))}),this):this.each(function(){function t(e){var t=s.val();if(s.cache[t]=e,e.length&&t.length>=o.minChars){for(var a="",c=0;c'),s.data("sc",s.sc).data("autocomplete",s.attr("autocomplete")),s.attr("autocomplete","off"),s.cache={},s.last_val="",s.updateSC=function(t,o){if(s.sc.css({top:s.offset().top+s.outerHeight(),left:s.offset().left,width:s.outerWidth()}),!t&&(s.sc.show(),s.sc.maxHeight||(s.sc.maxHeight=parseInt(s.sc.css("max-height"))),s.sc.suggestionHeight||(s.sc.suggestionHeight=e(".autocomplete-suggestion",s.sc).first().outerHeight()),s.sc.suggestionHeight))if(o){var a=s.sc.scrollTop(),c=o.offset().top-s.sc.offset().top;c+s.sc.suggestionHeight-s.sc.maxHeight>0?s.sc.scrollTop(c+s.sc.suggestionHeight+a-s.sc.maxHeight):0>c&&s.sc.scrollTop(c+a)}else s.sc.scrollTop(0)},e(window).on("resize.autocomplete",s.updateSC),s.sc.appendTo("body"),s.sc.on("mouseleave",".autocomplete-suggestion",function(){e(".autocomplete-suggestion.selected").removeClass("selected")}),s.sc.on("mouseenter",".autocomplete-suggestion",function(){e(".autocomplete-suggestion.selected").removeClass("selected"),e(this).addClass("selected")}),s.sc.on("mouseup",".autocomplete-suggestion",function(t){var a=e(this),c=a.data("val");(c||a.hasClass("autocomplete-suggestion"))&&(s.val(c),o.onSelect(t,c,a),s.sc.hide())}),s.on("blur.autocomplete",function(){try{over_sb=e(".autocomplete-suggestions:hover").length}catch(t){over_sb=0}over_sb?s.is(":focus")||s.focus():(s.last_val=s.val(),s.sc.hide())}),o.minChars||s.on("focus.autocomplete",function(){s.last_val="\n",s.trigger("keyup.autocomplete")}),s.on("keydown.autocomplete",function(t){if((40==t.which||38==t.which)&&s.sc.html()){var a,c=e(".autocomplete-suggestion.selected",s.sc);return c.length?(a=40==t.which?c.next(".autocomplete-suggestion"):c.prev(".autocomplete-suggestion"),a.length?(c.removeClass("selected"),s.val(a.addClass("selected").data("val"))):(c.removeClass("selected"),s.val(s.last_val),a=0)):(a=40==t.which?e(".autocomplete-suggestion",s.sc).first():e(".autocomplete-suggestion",s.sc).last(),s.val(a.addClass("selected").data("val"))),s.updateSC(0,a),!1}if(27==t.which)s.val(s.last_val).sc.hide();else if(13==t.which){var c=e(".autocomplete-suggestion.selected",s.sc);c.length&&(o.onSelect(t,c.data("val"),c),setTimeout(function(){s.sc.hide()},10))}}),s.on("keyup.autocomplete",function(a){if(!~e.inArray(a.which,[13,27,35,36,37,38,39,40])){var c=s.val();if(c.length>=o.minChars){if(c!=s.last_val){if(s.last_val=c,clearTimeout(s.timer),o.cache){if(c in s.cache)return void t(s.cache[c]);for(var l=1;l'+e.replace(o,"$1")+""},onSelect:function(e,t,o){}}}(jQuery); \ No newline at end of file +!function(a){a.fn.autoComplete=function(b){var c=a.extend({},a.fn.autoComplete.defaults,b);return"string"==typeof b?(this.each(function(){var c=a(this);"destroy"==b&&(a(window).off("resize.autocomplete",c.updateSC),c.off("blur.autocomplete focus.autocomplete keydown.autocomplete keyup.autocomplete"),c.data("autocomplete")?c.attr("autocomplete",c.data("autocomplete")):c.removeAttr("autocomplete"),a(c.data("sc")).remove(),c.removeData("sc").removeData("autocomplete"))}),this):this.each(function(){function d(a){var d=b.val();if(b.cache[d]=a,a.length&&d.length>=c.minChars){for(var e="",f=0;f'),b.data("sc",b.sc).data("autocomplete",b.attr("autocomplete")),b.attr("autocomplete","off"),b.cache={},b.last_val="",b.updateSC=function(c,d){if(b.sc.css({top:b.offset().top+b.outerHeight(),left:b.offset().left,width:b.outerWidth()}),!c&&(b.sc.show(),b.sc.maxHeight||(b.sc.maxHeight=parseInt(b.sc.css("max-height"))),b.sc.suggestionHeight||(b.sc.suggestionHeight=a(".autocomplete-suggestion",b.sc).first().outerHeight()),b.sc.suggestionHeight))if(d){var e=b.sc.scrollTop(),f=d.offset().top-b.sc.offset().top;f+b.sc.suggestionHeight-b.sc.maxHeight>0?b.sc.scrollTop(f+b.sc.suggestionHeight+e-b.sc.maxHeight):0>f&&b.sc.scrollTop(f+e)}else b.sc.scrollTop(0)},a(window).on("resize.autocomplete",b.updateSC),b.sc.appendTo("body"),b.sc.on("mouseleave",".autocomplete-suggestion",function(){a(".autocomplete-suggestion.selected").removeClass("selected")}),b.sc.on("mouseenter",".autocomplete-suggestion",function(){a(".autocomplete-suggestion.selected").removeClass("selected"),a(this).addClass("selected")}),b.sc.on("mouseup",".autocomplete-suggestion",function(d){var e=a(this),f=e.data("val");(f||e.hasClass("autocomplete-suggestion"))&&(b.val(f),c.onSelect(d,f,e),b.sc.hide())}),b.on("blur.autocomplete",function(){try{over_sb=a(".autocomplete-suggestions:hover").length}catch(c){over_sb=0}over_sb?b.is(":focus")||b.focus():(b.last_val=b.val(),b.sc.hide())}),c.minChars||b.on("focus.autocomplete",function(){b.last_val="\n",b.trigger("keyup.autocomplete")}),b.on("keydown.autocomplete",function(d){if((40==d.which||38==d.which)&&b.sc.html()){var e,f=a(".autocomplete-suggestion.selected",b.sc);return f.length?(e=40==d.which?f.next(".autocomplete-suggestion"):f.prev(".autocomplete-suggestion"),e.length?(f.removeClass("selected"),b.val(e.addClass("selected").data("val"))):(f.removeClass("selected"),b.val(b.last_val),e=0)):(e=40==d.which?a(".autocomplete-suggestion",b.sc).first():a(".autocomplete-suggestion",b.sc).last(),b.val(e.addClass("selected").data("val"))),b.updateSC(0,e),!1}if(27==d.which)b.val(b.last_val).sc.hide();else if(13==d.which){var f=a(".autocomplete-suggestion.selected",b.sc);f.length&&(c.onSelect(d,f.data("val"),f),setTimeout(function(){b.sc.hide()},10))}}),b.on("keyup.autocomplete",function(e){if(!~a.inArray(e.which,[13,27,35,36,37,38,39,40])){var f=b.val();if(f.length>=c.minChars){if(f!=b.last_val){if(b.last_val=f,clearTimeout(b.timer),c.cache){if(f in b.cache)return d(b.cache[f]),void 0;for(var g=1;g'+a.replace(c,"$1")+""},onSelect:function(){}}}(jQuery); \ No newline at end of file