forked from chromawoods/instaFilta
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinstafilta.min.js
8 lines (8 loc) · 1.36 KB
/
instafilta.min.js
1
2
3
4
5
6
7
8
/*!
* instaFilta
* Description: "jQuery plugin for performing in-page filtering"
* Version: "1.1.0"
* Homepage: https://github.com/chromawoods/instaFilta
* Author: Andreas Larsson <[email protected]> (http://chromawoods.com)
*/
!function(t){t.fn.instaFilta=function(a){var e,i=t.extend({targets:".instafilta-target",sections:".instafilta-section",matchCssClass:"instafilta-match",markMatches:!1,hideEmptySections:!0,beginsWith:!1,caseSensitive:!1,typeDelay:0},a),s=t(i.targets),n=t(i.sections),l="",h=function(){n.each(function(){var a=t(this);a.toggle(!!a.find('[data-instafilta-hide="false"]').length)})},o=function(a){return a=i.caseSensitive?a:a.toLowerCase(),l===a?!1:(l=a,a||(s.attr("data-instafilta-hide","false").show(),n.show()),s.each(function(){var e=t(this),s=e.text(),n=i.caseSensitive?s:s.toLowerCase(),l=n.indexOf(a),h=null;e.data("originalText")?e.html(e.data("originalText")):e.data("originalText",s),l>=0&&i.markMatches&&(h=s.substring(l,l+a.length),e.html(s.replace(h,'<span class="'+i.matchCssClass+'">'+h+"</span>"))),e.attr("data-instafilta-hide",i.beginsWith&&0!==l||0>l?"true":"false")}),s.filter('[data-instafilta-hide="true"]').hide(),s.filter('[data-instafilta-hide="false"]').show(),void(i.hideEmptySections&&h()))},r=function(){var a=t(this);clearTimeout(e),e=setTimeout(function(){o(a.val())},i.typeDelay)};return t(this).on("keyup",r)}}(jQuery);