Ext.dd.DragZone 拖拽

来源:互联网 发布:淘宝上的晚礼服 编辑:程序博客网 时间:2024/06/05 01:58

Ext.onReady(function () {    //拖放区域内的所有item处理拖(drag)    new Ext.dd.DragZone("zone2", {            ddGroup:"zone2DD",        //开始拖动,则当前元素当做占位符外表        onStartDrag: function () {            Ext.fly(this.dragData.ddel).addClass("item-replace");        },        //结束拖动,则当前元素回复        onEndDrag: function (dragData, e) {            Ext.fly(dragData.ddel).removeClass("item-replace");        },        //得到当前的单个拖对象        getDragData: function (e) {            var sourceEl = e.getTarget(".item", 10);            if (sourceEl) {                return {                    //ddel 必须,当前的拖元素                    ddel: sourceEl                }            }        }        //proxy 隐藏掉自带的是否可以放置标志    }).proxy.el.child(".x-dd-drop-icon").setDisplayed(false);    //拖放区域内的所有item处理放(drop)    new Ext.dd.DropZone("zone2", {            ddGroup:"zone2DD",        //自己和自己不应该反应        //@param target{HTMLElement} 当前的hover对象        //@param data.ddel{HTMLElement} 当前的drag对象        isMyself: function (target, data) {            return target == data.ddel;        },        //当前鼠标滑是否是可drop子区域        getTargetFromEvent: function (e) {            return e.getTarget('.item');        },        //根据鼠标在drop目标的位置决定占位符是否应该插前还是插后        move: function (target, data, e) {            target = Ext.get(target);            var tx = target.getX();            var ex = e.getPageX();            var tw = target.getWidth();            var del = Ext.get(data.ddel);            if (ex - tx < (tw / 2)) {                //是否需要改变位置?                if (target.prev("div") && target.prev("div").dom == data.ddel) return;                del.insertBefore(target);            } else {                //是否需要改变位置?                if (del.prev("div") && del.prev("div").dom == target.dom) return;                target.insertBefore(del);            }        },        /*                        在进入节点以及在节点间移动时,判断鼠标位置,开始移动占位符                    */        onNodeEnter: function (target, dd, e, data) {            if (this.isMyself(target, data)) return;            this.move(target, data, e);        },        onNodeOver: function (target, dd, e, data) {            if (this.isMyself(target, data)) return;            this.move(target, data, e);        }    });});

原创粉丝点击