ext js禁用onmousedown

问题描述 投票:0回答:1

我是sencha ext js的新手,如何通过单击按钮禁用onMouseDown,防止用户在画布上绘图

Ext js 6.5.2

这是视图

tbar: ['->', {
         text: 'Disable',
         handler: function () {
            // Remove all the sprites and redraw.
            onMouseDown.setDisabled()(!onMouseDown.isDisabled());
            this.setText(action.isDisabled() ? 'Enable' : 'Disable');

  }],

这是组件

onMouseDown: function (e) {
            var targetElement = this,
                me = Ext.getCmp(targetElement.id),
                surface = me.getSurface(),
                xy, x, y;

        if (!me.sprite) {
            xy = surface.getEventXY(e);
            x = xy[0];
            y = xy[1];

            me.list = [x, y, x, y];
            me.lastEventX = x;
            me.lastEventY = y;

            me.sprite = surface.add({
                type: 'path',
                path: ['M', me.list[0], me.list[1], 'L', me.list[0] + 1e-1, me.list[1] + 1e-1],
                lineWidth: 20,
                lineCap: 'round',
                lineJoin: 'round',
                draggable: 'true',
                strokeStyle: new Ext.util.Color(0,0,0)
            });
            surface.renderFrame();
        }
    }
javascript extjs
1个回答
1
投票

假设您的代码基于free paint example,我认为您可以执行以下操作:

{
    text: 'Disable',
    handler: function (button) {
        var draw = Ext.getCmp('free-draw');
        if (draw.isDisabled()) {
            draw.enable();
            button.setText('Disable');
        } else {
            draw.disable();
            button.setText('Enable');
        }
    }
}

这是fiddle来说明。

© www.soinside.com 2019 - 2024. All rights reserved.