第一次修改源码-将easyui里window组件拖动方式由延迟拖动改为实时拖动

这里以jquery-easyui-1.4.2为例

我们一般引入的是

 <script src="./jquery-easyui-1.4.2/jquery.easyui.min.js"></script>

所以修改jquery.easyui.min.js里的源码
将window组件的拖动方法修改,去掉延迟拖动这块,变成实时拖动。

  function _284(_285) {
        var _286 = $.data(_285, "window");
        _286.window.draggable({
            handle: ">div.panel-header>div.panel-title", disabled: _286.options.draggable == false, onStartDrag: function (e) {
                if (_286.mask) {
                    _286.mask.css("z-index", $.fn.window.defaults.zIndex++);
                }
                if (_286.shadow) {
                    _286.shadow.css("z-index", $.fn.window.defaults.zIndex++);
                }
                _286.window.css("z-index", $.fn.window.defaults.zIndex++);
                // if (!_286.proxy) {
                //     _286.proxy = $("<div class=\"window-proxy\"></div>").insertAfter(_286.window);
                // }
                // _286.proxy.css({ display: "none", zIndex: $.fn.window.defaults.zIndex++, left: e.data.left, top: e.data.top });
                // _286.proxy._outerWidth(_286.window._outerWidth());
                // _286.proxy._outerHeight(_286.window._outerHeight());
                // setTimeout(function () {
                //     if (_286.proxy) {
                //         _286.proxy.show();
                //     }
                // }, 500);
                console.log("state", _286);
            }, onDrag: function (e) {
                _286.options.left = e.data.left;
                _286.options.top = e.data.top;
                $(_285).window("move");
            }, onStopDrag: function (e) {
                _286.options.left = e.data.left;
                _286.options.top = e.data.top;
                $(_285).window("move");
                // _286.proxy.remove();
                // _286.proxy = null;
            }
        });

这个代码是压缩后的,可以看下压缩前的代码query.window.js

    /**
     * set window drag and resize property
     */
    function setProperties(target){
        var state = $.data(target, 'window');
        
        state.window.draggable({
            handle: '>div.panel-header>div.panel-title',
            disabled: state.options.draggable == false,
            onStartDrag: function(e){
                if (state.mask) state.mask.css('z-index', $.fn.window.defaults.zIndex++);
                if (state.shadow) state.shadow.css('z-index', $.fn.window.defaults.zIndex++);
                state.window.css('z-index', $.fn.window.defaults.zIndex++);
                options
                if (!state.proxy){
                    state.proxy = $('<div class="window-proxy"></div>').insertAfter(state.window);
                }
                state.proxy.css({
                    display:'none',
                    zIndex: $.fn.window.defaults.zIndex++,
                    left: e.data.left,
                    top: e.data.top
                });
                state.proxy._outerWidth(state.window._outerWidth());
                state.proxy._outerHeight(state.window._outerHeight());
                
                setTimeout(function(){
                    if (state.proxy) state.proxy.show();
                }, 500);
            },
            onDrag: function(e){
                state.proxy.css({
                    display:'block',
                    left: e.data.left,
                    top: e.data.top
                });
                return false;
            },
            onStopDrag: function(e){
                state.options.left = e.data.left;
                state.options.top = e.data.top;
                $(target).window('move');
                state.proxy.remove();
                state.proxy = null;
            }
        });
hxy

hxy

秦 夏

留下你的评论

快留下你的小秘密吧