0

我想断开 datetimebox (_onBlur) 的事件。它在文件“TextBox.js”中提到。'dojo.disconnect' 适用于我在 javascript 中定义的自定义事件。但我想对 dojo 小部件本身做同样的事情。我无法断开在 dojo 小部件 (Textbox.js) 中声明的事件 (_onBlur)。

下面是 Textbox.js 小部件中的声明.. 我应该如何声明下面的事件永远不会调用的断开事件???.. 下面的代码再次来自小部件 & 它不是我的代码.. 使用 dojo.disconnect 我能够在我的自定义 js 文件中声明的断开事件,但我无法断开在 dojo 库附带的小部件 js 文件中声明的以下事件。请建议

_onBlur:函数(e){

        this._setBlurValue();

this.inherited(参数);

        if(this._selectOnClickHandle){
            this.disconnect(this._selectOnClickHandle);
        }
        if(this.selectOnClick && dojo.isMoz){
            this.textbox.selectionStart = this.textbox.selectionEnd = undefined; // clear selection so that the next mouse click doesn't reselect
        }

        this._updatePlaceHolder();

},

Simon,我想要它,因为当我们想用我们自己的自定义事件覆盖 dojo 内置事件时,拥有它是有利的。示例是当您使用 dojo 网格并使用箭头键(上、右、下..)时,单元格被突出显示(虚线围绕单元格)指示当前单元格......现在如果您想禁用,即保持单元格突出显示有一段时间可以说您在该单元格上显示编辑/文本,但是如果用户再次尝试按箭头键,您将看到虚线仍在旋转,您不想要...最简单的方法是禁用/断开此事件绑定到网格的案例事件是“doKeyEvent”,它侦听关键事件并执行单元格的 hghlgt。我已经通过按键和其他事件来抵消或取消网格正在做的事情,但仍然......最简单的是禁用/断开连接网格事件本身 &

4

2 回答 2

0

Dojo disconnect 仅适用于 dojo.connect 添加的事件。我不认为你可以做你想做的事。为什么你需要这样做,也许还有另一种方法可以解决你的问题?

于 2012-04-23T16:23:44.170 回答
0

正如 Simon 指出的那样,Dojo 断开连接仅适用于 dojo.connect 添加的事件。

但是解决您的问题的方法可能是覆盖该onBlur()函数,使其不会执行,例如:

this.onBlur = function(){
    return false;
}
于 2017-02-02T08:15:56.147 回答