1 Star 0 Fork 10

八木 / jquery-range-picker

forked from Bluishoul / jquery-range-picker 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
jquery.event.drag.live-2.2.js 2.37 KB
一键复制 编辑 原始数据 按行查看 历史
Bluishoul 提交于 2013-08-01 18:28 . init upload
/*!
* 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 );
JavaScript
1
https://gitee.com/1009025657/jquery-range-picker.git
git@gitee.com:1009025657/jquery-range-picker.git
1009025657
jquery-range-picker
jquery-range-picker
master

搜索帮助