-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathjquery.delayed-1.1.0.min.js
9 lines (9 loc) · 3.42 KB
/
jquery.delayed-1.1.0.min.js
1
2
3
4
5
6
7
8
9
/*
Delayed for jQuery - A plug-in to delay and/or debounce event handlers
http://www.theloveofcode.com/jquery/delayed/
https://github.com/theloveofcode/delayed-for-jquery
Copyright 2012 Tyler Vigeant <[email protected]>
Released under the MIT and GPL licenses.
Version 1.1.0
*/
(function(a){TLOC_Delayed={functions:{},arguments:{},originals:{},debounce_threshhold:100,delayed:function(b,c,d,e,f,g){var h,i;if(typeof b=="object"){typeof d!="string"&&(e=e||d,d=void 0);for(i in b)this.delayed(i,d,e,b[i]);return this}if(e==null&&f==null?(f=d,e=d=void 0):f==null&&(typeof d=="string"?(f=e,e=void 0):(f=e,e=d,d=void 0)),f===!1)f=returnFalse;else if(!f)return this;return typeof c!="object"&&(c={delay:c}),c.delay===void 0?!1:(h=f,f=function(e){c.preventDefault&&e.preventDefault(),c.stopPropagation&&e.stopPropagation(),c.stopImmediatePropagation&&e.stopImmediatePropagation(),TLOC_Delayed.arguments[h.guid]=[this,arguments],c.delay=="debounce"?(window.clearTimeout(TLOC_Delayed.functions[h.guid]),delay_ms=TLOC_Delayed.debounce_threshhold):delay_ms=c.delay,g===1?jQuery().off(e):g==="first"&&a(e.delegateTarget).removeDelay(b,d,f),TLOC_Delayed.functions[h.guid]=window.setTimeout(function(){return h.apply(TLOC_Delayed.arguments[h.guid][0],TLOC_Delayed.arguments[h.guid][1])},delay_ms)},f.guid=h.guid||(h.guid=jQuery.guid++),TLOC_Delayed.originals[f.guid]=h,this.each(function(){jQuery.event.add(this,b,f,e,d)}))},delayedOne:function(a,b,c,d,e){return this.delayed(a,b,c,d,e,1)},delayedFirst:function(a,b,c,d,e){return this.delayed(a,b,c,d,e,"first")},get_events:function(b,c,d,f){var g=[],h=/^([^\.]*)?(?:\.(.+))?$/,i=1.8>parseFloat(a().jquery)?a(b).data("events"):a._data(b,"events");(d===!1||typeof d=="function")&&(f=d,d=void 0),f===!1&&(f=returnFalse),c=c.replace(/(?:^|\s)hover(\.\S+)?\b/,"mouseenter$1 mouseleave$1")||"",c=jQuery.trim(c).split(" ");for(var j=0;c.length>j;j++){tns=h.exec(c[j])||[],type=origType=tns[1],type=="mouseenter"?(type="mouseover",origType="mouseenter"):type=="mouseleave"?(type="mouseout",origType="mouseleave"):origType=!1,eventType=i[type]||[];for(var k in eventType)e=eventType[k],(origType&&origType==e.origType||!origType)&&(e.namespace==tns[2]||tns[2]===void 0)&&(d?e.selector==d&&(f?e.handler==f&&g.push(e):g.push(e)):g.push(e))}return g},get_event_guids:function(a,b,c,d){var f=[],g=TLOC_Delayed.get_events(a,b,c,d);for(var h in g)e=g[h],f.push(e.guid);return f},removeDelay:function(a,b,c){if(typeof a=="object"){for(var d in a)this.removeDelay(d,b,a[d]);return this}return this.each(function(){var d=TLOC_Delayed.get_events(this,a,b,c);for(var f in d)e=d[f],e.handler=TLOC_Delayed.originals[e.guid]})},stopDelayed:function(a,b,c){if(typeof a=="object"){for(var d in a)this.stopDelayed(d,b,a[d]);return this}return this.each(function(){var d=TLOC_Delayed.get_event_guids(this,a,b,c);for(var e in d)clearTimeout(TLOC_Delayed.functions[d[e]])})},debounce:function(b,c,d,e){return this.each(function(){a(this).delayed(b,"debounce",c,d,e)})}},a.fn.delayed=function(){return TLOC_Delayed.delayed.apply(this,arguments)},a.fn.delayedOne=function(){return TLOC_Delayed.delayedOne.apply(this,arguments)},a.fn.delayedFirst=function(){return TLOC_Delayed.delayedFirst.apply(this,arguments)},a.fn.removeDelay=function(){return TLOC_Delayed.removeDelay.apply(this,arguments)},a.fn.stopDelayed=function(){return TLOC_Delayed.stopDelayed.apply(this,arguments)},a.fn.debounce=function(){return TLOC_Delayed.debounce.apply(this,arguments)}})(jQuery)