2013-04-21 58 views
0

所有窗體小部件從dijit.form._FormWidgetMixin延伸,當它收到焦點時將窗口滾動到小部件。如何阻止dojo滾動以形成焦點上的小部件?

我個人發現這種行爲使大多數小部件無法使用。我怎樣才能阻止它?

+0

我個人覺得對面......你怎麼填補─在只使用鍵盤的表單中,如果頁面不滾動? – Philippe 2013-04-22 14:12:30

+0

對於使用標準表單元素的小部件,它應該像瀏覽器通常那樣工作。爲什麼我不喜歡這個功能的一個例子 - 我有一個'dijit/InlineEditBox'使用'ditit/form/Textarea'作爲編輯器。單擊文本將生成一個textarea,以及保存和取消按鈕。點擊任一按鈕使頁面滾動到按鈕。我必須再次點擊才能真正觸發按鍵點擊 – 2013-04-22 17:49:01

+0

使用鍵盤仍然適合我。它滾動到元素。我希望根據需要啓用它(如果需要),而不是在點擊事物時進行大量隨機滾動。 – 2013-04-22 17:51:50

回答

2

Dojo允許您使用​​擴展基本組件。只要確保需要該模塊之前的任何要求調用,負載dijit/form/_FormWidgetMixin

// Dojo 1.7+ (AMD) 
define([ 
    "dojo/_base/lang", 
    "dijit/form/_FormWidgetMixin" 
], function(lang, _FormWidget){ 
    lang.extend(_FormWidget, { 
     scrollOnFocus:false 
    }); 
}); 

這裏是-AMD前道場相同:

// Dojo < 1.7 
dojo.require("dijit.form._FormWidget"); 
dojo.extend(dijit.form._FormWidget, { 
    scrollOnFocus:false 
});