Javascript 重新初始化(或重新声明)Dojo小部件
我有一段代码,用以下方式初始化调整大小处理程序:Javascript 重新初始化(或重新声明)Dojo小部件,javascript,dojo,Javascript,Dojo,我有一段代码,用以下方式初始化调整大小处理程序: dojo._hasResource["dojox.layout.ResizeHandle"] = true; dojo.provide("dojox.layout.ResizeHandle"); dojo.experimental("dojox.layout.ResizeHandle"); dojo.declare("dojox.layout.ResizeHandle", [dijit._Widget, dijit._Templated], {
dojo._hasResource["dojox.layout.ResizeHandle"] = true;
dojo.provide("dojox.layout.ResizeHandle");
dojo.experimental("dojox.layout.ResizeHandle");
dojo.declare("dojox.layout.ResizeHandle", [dijit._Widget, dijit._Templated], {
_init: function(){},
create: function(){
this.connect(this.resizeHandle, "mouseover", "_init");
}
// ... more properties
});
这是写在一个核心应用程序文件,我不能编辑。我需要重新绑定此调整大小处理程序以响应触摸事件。我正在考虑覆盖这个小部件,并用“touch”事件重新绑定resize处理程序。诸如此类
this.connect(this.resizeHandle, "touchstart", "_init");
我以前从未在Dojo上工作过。因此,我不确定模块系统是如何工作的。我尝试通过更改标识小部件的字符串(“dojox.layout.ResizeHandle”)来创建一个新的小部件,但没有成功
如何销毁现有小部件并使用触摸事件重新绑定 此代码不会初始化小部件。declare函数创建一个类。在本例中,它创建了一个名为“dojox.layout.ResizeHandle”的类。要使用这个类,您需要它,然后实例化它。像这样的
require(["dojox/layout/ResizeHandle"], function(ResizeHandle) {
var resize = new ResizeHandle();
}
从那里可以附加新的处理程序
on(resize.resizeHandle, "touchstart", "_init);
还值得指出的是,您使用的是旧的不推荐的dojo语法(connect vs on等),尽管您可能使用的是旧版本的dojo