断开datetimebox的dojo事件

时间:2012-04-23 16:08:29

标签: dojo

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

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

_onBlur:function(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网格并使用箭头键(向上,向右,向下......)时,单元格突出显示(虚线围绕单元格),指示当前单元格...现在,如果要禁用,即保持单元格为hghlighted为一段时间让我们说你在那个单元格上显示编辑/文本,但是如果用户再次尝试按箭头键,你会看到虚线仍然在你不想要的周围旋转...最简单的是在这个中禁用/断开事件绑定到网格的case事件是“doKeyEvent”,它监听键事件并执行单元格的hghlgt。我已经通过keypress&其他事件来抵消或取消网格正在做什么,但仍然最简单的是禁用/断开此网格事件本身&让我们专注于商业活动&逻辑reqd而不是尝试编写默认为dojo组件的事件的代码,这可能对某些业务而言并非对所有人都有利。此计数器事件也必须为其他组件发生

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

但问题的解决方案可能是覆盖onBlur()函数,因此无法执行,例如:

this.onBlur = function(){
    return false;
}