/** * droppable - jQuery EasyUI * * Licensed under the GPL terms * To use it on other terms please contact us * * Copyright(c) 2009-2012 stworthy [ stworthy@gmail.com ] */ (function($){ function init(target){ $(target).addClass('droppable'); $(target).bind('_dragenter', function(e, source){ $.data(target, 'droppable').options.onDragEnter.apply(target, [e, source]); }); $(target).bind('_dragleave', function(e, source){ $.data(target, 'droppable').options.onDragLeave.apply(target, [e, source]); }); $(target).bind('_dragover', function(e, source){ $.data(target, 'droppable').options.onDragOver.apply(target, [e, source]); }); $(target).bind('_drop', function(e, source){ $.data(target, 'droppable').options.onDrop.apply(target, [e, source]); }); } $.fn.droppable = function(options, param){ if (typeof options == 'string'){ return $.fn.droppable.methods[options](this, param); } options = options || {}; return this.each(function(){ var state = $.data(this, 'droppable'); if (state){ $.extend(state.options, options); } else { init(this); $.data(this, 'droppable', { options: $.extend({}, $.fn.droppable.defaults, $.fn.droppable.parseOptions(this), options) }); } }); }; $.fn.droppable.methods = { options: function(jq){ return $.data(jq[0], 'droppable').options; }, enable: function(jq){ return jq.each(function(){ $(this).droppable({disabled:false}); }); }, disable: function(jq){ return jq.each(function(){ $(this).droppable({disabled:true}); }); } }; $.fn.droppable.parseOptions = function(target){ var t = $(target); return $.extend({}, $.parser.parseOptions(target, ['accept']), { disabled: (t.attr('disabled') ? true : undefined) }); }; $.fn.droppable.defaults = { accept:null, disabled:false, onDragEnter:function(e, source){}, onDragOver:function(e, source){}, onDragLeave:function(e, source){}, onDrop:function(e, source){} }; })(jQuery);