2012-04-23 31 views
0

我想斷開datetimebox(_onBlur)的事件。它在文件「TextBox.js」中提到。 'dojo.disconnect'適用於我在javascript中定義的自定義事件。但我想爲dojo小部件本身做同樣的事情。我無法斷開dojo小部件(Textbox.js)中聲明的事件(_onBlur)。斷開datetimebox的dojo事件

下面是聲明在Textbox.js部件..我應該如何申報斷開事件,以下事件是永遠不會調用??? ..下面再代碼是小部件&這不是我的代碼中使用dojo.disconnect ..我能夠斷開在我的自定義的js文件中聲明的事件,但我不是能夠斷開事件,如下面隨Dojo庫插件的js文件中聲明..請建議

_onBlur:功能(E){

 this._setBlurValue(); 

this.inherited(arguments);

 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(); 

}, 

西門,我想它,因爲它是有利的,當我們要覆蓋與我們自己的自定義事件道場內置的事件。例子是當你使用dojo網格並使用箭頭鍵(向上,向右,向下)時,單元格被突出顯示(虛線在單元格周圍),指示當前單元格...現在,如果你想禁用,即保持單元格爲高亮有一段時間可以讓你說你在那個單元上顯示編輯/文本,但是如果用戶再次嘗試按下箭頭鍵,你會看到虛線仍然在你不想要的周圍旋轉......最簡單的是禁用/斷開此事件與網格綁定的事件事件是「doKeyEvent」,它監聽關鍵事件並執行單元格的hghlgt ..我通過其他事件實現了這一點,以抵消或取消網格正在做的事情,但仍然...最簡單的是禁用/斷開連接網格事件本身&讓我們專注於業務事件&邏輯reqd而不是嘗試編寫默認爲dojo組件的事件,這可能對一些業務並不適合所有人..這個計數器事件h以便爲其他組件發生

回答

0

Dojo斷開連接僅適用於由dojo.connect添加的事件。我不認爲你可以做你想做的事情。爲什麼你需要這樣做,也許還有另一種解決你的問題的方法?

0

正如Simon指出的,Dojo斷開連接僅適用於由dojo.connect添加的事件。

但你的問題的解決方案可能是覆蓋onBlur()功能,因此它不會執行,例如:

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