jquery-helpers
Version:
A set of jQuery Helpers for front-end development.
1 lines • 1.81 kB
JavaScript
!function(i){i.fn.exists=function(t,e){var n=this.length;return 0===n&&i.isFunction(e)&&e.call(),this.each(function(){i.isFunction(t)&&t.call(this,n)}),n}}(jQuery),window.matchMedia||(window.matchMedia=function(){"use strict";var e=window.styleMedia||window.media;if(!e){var n,i=document.createElement("style"),t=document.getElementsByTagName("script")[0];i.type="text/css",i.id="matchmediajs-test",t.parentNode.insertBefore(i,t),n="getComputedStyle"in window&&window.getComputedStyle(i,null)||i.currentStyle,e={matchMedium:function(t){var e="@media "+t+"{ #matchmediajs-test { width: 1px; } }";return i.styleSheet?i.styleSheet.cssText=e:i.textContent=e,"1px"===n.width}}}return function(t){return{matches:e.matchMedium(t||"all"),media:t||"all"}}}()),function(){if(window.matchMedia&&window.matchMedia("all").addListener)return;var o=window.matchMedia,a=o("only all").matches,c=!1,e=0,s=[],r=function(t){clearTimeout(e),e=setTimeout(function(){for(var t=0,e=s.length;t<e;t++){var n=s[t].mql,i=s[t].listeners||[],a=o(n.media).matches;if(a!==n.matches){n.matches=a;for(var c=0,r=i.length;c<r;c++)i[c].call(window,n)}}},30)};window.matchMedia=function(t){var e=o(t),i=[],n=0;return e.addListener=function(t){a&&(c||(c=!0,window.addEventListener("resize",r,!0)),0===n&&(n=s.push({mql:e,listeners:i})),i.push(t))},e.removeListener=function(t){for(var e=0,n=i.length;e<n;e++)i[e]===t&&i.splice(e,1)},e}}(),function(r){r.fn.matchMedia=function(t,e,n){if(!window.matchMedia)return console.error("jQuery().matchMedia() needs 'https://github.com/paulirish/matchMedia.js/' to run on old browsers.");var i=window.matchMedia(t),a=i.matches;function c(t){if(r.isFunction(e)&&!r.isFunction(n))return e.call(null,t.matches);t.matches?r.isFunction(e)&&e.call():r.isFunction(n)&&n.call()}return c(i),i.addListener(c),a}}(jQuery);