summaryrefslogtreecommitdiffstats
path: root/ecomp-portal-FE/client/bower_components/jquery.event.drag-new/event.drop/jquery.event.drop.live.js
diff options
context:
space:
mode:
Diffstat (limited to 'ecomp-portal-FE/client/bower_components/jquery.event.drag-new/event.drop/jquery.event.drop.live.js')
-rw-r--r--ecomp-portal-FE/client/bower_components/jquery.event.drag-new/event.drop/jquery.event.drop.live.js93
1 files changed, 93 insertions, 0 deletions
diff --git a/ecomp-portal-FE/client/bower_components/jquery.event.drag-new/event.drop/jquery.event.drop.live.js b/ecomp-portal-FE/client/bower_components/jquery.event.drag-new/event.drop/jquery.event.drop.live.js
new file mode 100644
index 00000000..f5911a10
--- /dev/null
+++ b/ecomp-portal-FE/client/bower_components/jquery.event.drag-new/event.drop/jquery.event.drop.live.js
@@ -0,0 +1,93 @@
+/*!
+ * jquery.event.drop.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, event.drop 2.2
+
+;(function($){ // secure $ jQuery alias
+
+// local refs (increase compression)
+var $event = $.event,
+// ref the drop special event config
+drop = $event.special.drop,
+// old drop event add method
+origadd = drop.add,
+// old drop event teradown method
+origteardown = drop.teardown;
+
+// allow events to bubble for delegation
+drop.noBubble = false;
+
+// the namespace for internal live events
+drop.livekey = "livedrop";
+
+// new drop event add method
+drop.add = function( obj ){
+ // call the old method
+ origadd.apply( this, arguments );
+ // read the data
+ var data = $.data( this, drop.datakey );
+ // bind the live "dropinit" delegator
+ if ( !data.live && obj.selector ){
+ data.live = true;
+ $event.add( this, "dropinit."+ drop.livekey, drop.delegate );
+ }
+};
+
+// new drop event teardown method
+drop.teardown = function(){
+ // call the old method
+ origteardown.apply( this, arguments );
+ // read the data
+ var data = $.data( this, drop.datakey ) || {};
+ // remove the live "dropinit" delegator
+ if ( data.live ){
+ // remove the "live" delegation
+ $event.remove( this, "dropinit", drop.delegate );
+ data.live = false;
+ }
+};
+
+// identify potential delegate elements
+drop.delegate = function( event, dd ){
+ // local refs
+ var elems = [], $targets,
+ // element event structure
+ events = $.data( this, "events" ) || {};
+ // query live events
+ $.each( events || [], function( key, arr ){
+ // no event type matches
+ if ( key.indexOf("drop") !== 0 )
+ return;
+ $.each( arr, function( i, obj ){
+ // locate the elements to delegate
+ $targets = $( event.currentTarget ).find( obj.selector );
+ // no element found
+ if ( !$targets.length )
+ return;
+ // take each target...
+ $targets.each(function(){
+ // add an event handler
+ $event.add( this, obj.origType +'.'+ drop.livekey, obj.origHandler || obj.handler, obj.data );
+ // remember new elements
+ if ( $.inArray( this, elems ) < 0 )
+ elems.push( this );
+ });
+ });
+ });
+ // may not exist when artifically triggering dropinit event
+ if ( dd )
+ // clean-up after the interaction ends
+ $event.add( dd.drag, "dragend."+drop.livekey, function(){
+ $.each( elems.concat( this ), function(){
+ $event.remove( this, '.'+ drop.livekey );
+ });
+ });
+ //drop.delegates.push( elems );
+ return elems.length ? $( elems ) : false;
+};
+
+})( jQuery ); // confine scope \ No newline at end of file