diff options
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.js | 87 |
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 |