diff --git a/README.markdown b/README.markdown index c3f71a0..d807831 100644 --- a/README.markdown +++ b/README.markdown @@ -1,3 +1,5 @@ +THIS PROJECT IS VERY MUCH DEAD AND NOT MAINTAINED. IT'S BEEN 6+ YEARS SINCE THE LAST UPDATES. DON'T EXPECT THIS TO WORK. + # jQuery quicksearch plug-in A [jQuery][jquery_site] based plug-in for filtering large data sets with user input @@ -156,4 +158,4 @@ Thanks to [Seth F.][thelizardreborn] for fixes and [Krzysiek Goj][goj] for the [github_follow]: http://github.com/users/follow?target=riklomas [twitter_follow]: http://twitter.com/riklomas [thelizardreborn]: http://github.com/thelizardreborn -[goj]: http://github.com/goj \ No newline at end of file +[goj]: http://github.com/goj diff --git a/jquery.quicksearch.js b/jquery.quicksearch.js index 7bd6f65..543d828 100644 --- a/jquery.quicksearch.js +++ b/jquery.quicksearch.js @@ -7,6 +7,7 @@ stripeRows: null, loader: null, noResults: '', + matchedResultsCount: 0, bind: 'keyup', onBefore: function () { return; @@ -35,15 +36,17 @@ this.go = function () { - var i = 0, - noresults = true, - query = options.prepareQuery(val), - val_empty = (val.replace(' ', '').length === 0); + var i = 0, + numMatchedRows = 0, + noresults = true, + query = options.prepareQuery(val), + val_empty = (val.replace(' ', '').length === 0); for (var i = 0, len = rowcache.length; i < len; i++) { if (val_empty || options.testQuery(query, cache[i], rowcache[i])) { options.show.apply(rowcache[i]); noresults = false; + numMatchedRows++; } else { options.hide.apply(rowcache[i]); } @@ -56,12 +59,29 @@ this.stripe(); } + this.matchedResultsCount = numMatchedRows; this.loader(false); options.onAfter(); return this; }; + /* + * External API so that users can perform search programatically. + * */ + this.search = function (submittedVal) { + val = submittedVal; + e.trigger(); + }; + + /* + * External API to get the number of matched results as seen in + * https://github.com/ruiz107/quicksearch/commit/f78dc440b42d95ce9caed1d087174dd4359982d6 + * */ + this.currentMatchedResults = function() { + return this.matchedResultsCount; + }; + this.stripe = function () { if (typeof options.stripeRows === "object" && options.stripeRows !== null) @@ -117,6 +137,12 @@ rowcache = jq_results.map(function () { return this; }); + + /* + * Modified fix for sync-ing "val". + * Original fix https://github.com/michaellwest/quicksearch/commit/4ace4008d079298a01f97f885ba8fa956a9703d1 + * */ + val = val || this.val() || ""; return this.go(); }; @@ -139,7 +165,12 @@ this.loader(false); return this.each(function () { - $(this).bind(options.bind, function () { + + /* + * Changed from .bind to .on. + * */ + $(this).on(options.bind, function () { + val = $(this).val(); e.trigger(); }); @@ -147,4 +178,4 @@ }; -}(jQuery, this, document)); \ No newline at end of file +}(jQuery, this, document));