summaryrefslogtreecommitdiffstats
path: root/ecomp-portal-FE/client/bower_components/jquery.event.drag-new/event.drag/jquery.event.drag.live.js
diff options
context:
space:
mode:
Diffstat (limited to 'ecomp-portal-FE/client/bower_components/jquery.event.drag-new/event.drag/jquery.event.drag.live.js')
-rw-r--r--ecomp-portal-FE/client/bower_components/jquery.event.drag-new/event.drag/jquery.event.drag.live.js87
1 files changed, 87 insertions, 0 deletions
diff --git a/ecomp-portal-FE/client/bower_components/jquery.event.drag-new/event.drag/jquery.event.drag.live.js b/ecomp-portal-FE/client/bower_components/jquery.event.drag-new/event.drag/jquery.event.drag.live.js
new file mode 100644
index 00000000..77452716
--- /dev/null
+++ b/ecomp-portal-FE/client/bower_components/jquery.event.drag-new/event.drag/jquery.event.drag.live.js
@@ -0,0 +1,87 @@
+/*!
+ * jquery.event.drag.live - v 2.2
+ * Copyright (c) 2010 Three Dub Media - http://threedubmedia.com
+ * Open Source MIT License - http://threedubmedia.com/code/license
+ */
+// Created: 2010-06-07
+// Updated: 2012-05-21
+// REQUIRES: jquery 1.7.x, event.drag 2.2
+
+;(function( $ ){
+
+// local refs (increase compression)
+var $event = $.event,
+// ref the special event config
+drag = $event.special.drag,
+// old drag event add method
+origadd = drag.add,
+// old drag event teradown method
+origteardown = drag.teardown;
+
+// allow events to bubble for delegation
+drag.noBubble = false;
+
+// the namespace for internal live events
+drag.livekey = "livedrag";
+
+// new drop event add method
+drag.add = function( obj ){
+ // call the old method
+ origadd.apply( this, arguments );
+ // read the data
+ var data = $.data( this, drag.datakey );
+ // bind the live "draginit" delegator
+ if ( !data.live && obj.selector ){
+ data.live = true;
+ $event.add( this, "draginit."+ drag.livekey, drag.delegate );
+ }
+};
+
+// new drop event teardown method
+drag.teardown = function(){
+ // call the old method
+ origteardown.apply( this, arguments );
+ // read the data
+ var data = $.data( this, drag.datakey ) || {};
+ // bind the live "draginit" delegator
+ if ( data.live ){
+ // remove the "live" delegation
+ $event.remove( this, "draginit."+ drag.livekey, drag.delegate );
+ data.live = false;
+ }
+};
+
+// identify potential delegate elements
+drag.delegate = function( event ){
+ // local refs
+ var elems = [], target,
+ // element event structure
+ events = $.data( this, "events" ) || {};
+ // query live events
+ $.each( events || [], function( key, arr ){
+ // no event type matches
+ if ( key.indexOf("drag") !== 0 )
+ return;
+ $.each( arr || [], function( i, obj ){
+ // locate the element to delegate
+ target = $( event.target ).closest( obj.selector, event.currentTarget )[0];
+ // no element found
+ if ( !target )
+ return;
+ // add an event handler
+ $event.add( target, obj.origType+'.'+drag.livekey, obj.origHandler || obj.handler, obj.data );
+ // remember new elements
+ if ( $.inArray( target, elems ) < 0 )
+ elems.push( target );
+ });
+ });
+ // if there are no elements, break
+ if ( !elems.length )
+ return false;
+ // return the matched results, and clenup when complete
+ return $( elems ).bind("dragend."+ drag.livekey, function(){
+ $event.remove( this, "."+ drag.livekey ); // cleanup delegation
+ });
+};
+
+})( jQuery ); \ No newline at end of file