是否可以通过编程将某种行为绑定到dijit?
即假设我在整个项目中都经常使用此dijit / form / NumberSpinner。现在,我想在所有NumberSpinners上使用onFocus: function() { console.log('hi') }
。
通常我会这样做:
… new NumberSpinner({
onFocus: function() { console.log('hi'); },
…
});
在每个元素上。是否没有办法将此绑定为每个NumberSpinner实例的默认行为?
谢谢
最佳答案
我终于找到了解决方法。
使用扩展
像这样:
lang.extend(NumberSpinner, {
_onFocus: function() { console.log('hi'); }
});
JSBIN上的工作示例:https://jsbin.com/sesotolove/2/edit?html,output
参考:https://dojotoolkit.org/reference-guide/1.7/dojo/extend.html
使用原型
可以通过如下重写原型来实现相同的目的:
NumberSpinner.prototype._onFocus: function() { console.log('hi'); }