ext js禁用onmousedown

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ext js禁用onmousedown相关的知识,希望对你有一定的参考价值。

我是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();
        }
    }
答案

假设您的代码基于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来说明。

以上是关于ext js禁用onmousedown的主要内容,如果未能解决你的问题,请参考以下文章

在 Ext JS 3.4 中的初始化之外禁用 GridPanel LoadMask

如何防止鼠标右键单击onMouseDown()反应js?

替换从 VAST 代码返回的多个 HLS VOD 片段

js事件之onmousedown和onmouseup

如何禁用在android片段类中按下的后退按钮

如何js实现触屏点击事件