dojo.lang.extend(dojo.widget.PopupMenu2, {
onOpen: function(e){
this.openEvent = e;
var x = e.pageX, y = e.pageY;
var win = dojo.html.getElementWindow(e.target);
var iframe = win._frameElement || win.frameElement;
if(iframe){
var cood = dojo.html.abs(iframe, true);
x += cood.x - dojo.withGlobal(win, dojo.html.getScroll).left;
//override the onOpen to reslove the problem the context popup menu open under the selected TreeNode.
if (!(e.type == "contextmenu" && dojo.render.html.ie))
y += cood.y - dojo.withGlobal(win, dojo.html.getScroll).top;
}
this.open(x,y, null, [x, y]);
e.preventDefault();
e.stopPropagation();
}
});
这样我们就是复写了dojo.widget.PopupMenu2类的onOpen方法。如果我们想调用覆盖以前的方法。
//backup the old function
dojo.widget.TreeBasicControllerV3.prototype.oldOnKey =dojo.widget.TreeBasicControllerV3.prototype.onKey;
dojo.lang.extend(dojo.widget.TreeBasicControllerV3, {
onClick: function(e) {
if (e.target.tagName == "INPUT")
return ;
// default click handler just sets the focus
var treeWidget = this.getWidgetByNode(e.currentTarget);
if (!treeWidget || !treeWidget.isTree) { return; }
var nodeWidget = this.getWidgetByNode(e.target);
if (!nodeWidget || !nodeWidget.isTreeNode) { return; }
this._focusLabel(treeWidget, nodeWidget);
},
onKey: function (e){
if (e.target.tagName == "INPUT")
return ;
this.oldOnKey(e);
}
});
dojo.lang.extend这个方式是多么的方便。我们可以用这个方法方便的扩展或修改以有的代码。
看看dojo的dojo.lang.common 里面包括了对象间的一些操作。如dojo.lang.inherits, dojo.lang.mixin etc
分享到:
相关推荐
一、 Dojo学习笔记(1. 模块与包) 1 二、 Dojo学习笔记(2. djConfig解说) 4 三、 Dojo学习笔记(3. Dojo的基础对象和方法) 6 四、 Dojo学习笔记(4. dojo.string & dojo.lang) 9 五、 Dojo学习笔记(5. dojo.lang.array ...
Dojo with Adobe AIR Dojo 工具包教程 Dojo 快速安装 Dojo和JSON建立无限级AJAX动态加载的功能模块树 Dojo学习笔记( 模块与包) Dojo学习笔记-- djConfig解说 Dojo学习笔记-- dojo.dom Dojo学习笔记-- dojo....
Dojo with Adobe AIR Dojo 工具包教程 Dojo 快速安装 Dojo和JSON建立无限级AJAX动态加载的功能模块树 Dojo学习笔记( 模块与包) Dojo学习笔记-- djConfig解说 Dojo学习笔记-- dojo.dom Dojo学习笔记-- dojo....
Dojo with Adobe AIR Dojo 工具包教程 Dojo 快速安装 Dojo和JSON建立无限级AJAX动态加载的功能模块树 Dojo学习笔记( 模块与包) Dojo学习笔记-- djConfig解说 Dojo学习笔记-- dojo.dom Dojo学习笔记-- dojo....
Dojo with Adobe AIR Dojo 工具包教程 Dojo 快速安装 Dojo和JSON建立无限级AJAX动态加载的功能模块树 Dojo学习笔记( 模块与包) Dojo学习笔记-- djConfig解说 Dojo学习笔记-- dojo.dom Dojo学习笔记-- dojo....
Dojo开发包: 包含以下目录dijit dojo dojox util
道场Dojo是适用于D&D(5E)地牢大师的Web应用程序。 您可以在找到它。 如果您想为发展做出贡献,请。特征怪物设计师您可以使用内置的怪物设计器来构建自己的怪物,这使您可以对照其他类似的怪物来检查自己的作品。 ...
dojo dojo实例 dojo例子 dojo资料 dojo项目 dojo实战 dojo模块 dojo编程
dojo Reference Guide & API Documentation
dojo文档 dojo文档 dojo文档 dojo文档 dojo文档 dojo文档 dojo文档 dojo文档 dojo文档 dojo文档 dojo文档 dojo文档
DOJO中文手册【出自dojo中国】 页数60+ 简单介绍: Dojo 是一个用javascript语言实现的开源DHTML工具包。它是在几个项目捐助基础上建立起来的(nWidgets, Burstlib, f(m)), 这也是为什么叫它a \"unified\" toolkit的...
Dojo是一个非常强大的、面向对象的、开源的JavaScript工具箱,它为开发富客户端Ajax应用提供了一套完整的小部件和一些特效操作。曾经有人这样说:“对于一个Web开发者而言,如果没有Dojo,他将是一个“残废”的...
结合dojo的一本介绍设计模式的书,内含大量的dojo相关代码示例。
dojo js dojo js dojo js dojo js dojo js dojo js dojo js
dojo.js.核心jsDojo.js核心dojo的javaScript类库Dojo.js核心dojo的javaScript类库Dojo.js核心dojo的javaScript类库Dojo.js核心dojo的javaScript类库
学习dojo的绝好资源学习dojo的绝好资源学习dojo的绝好资源学习dojo的绝好资源学习dojo的绝好资源学习dojo的绝好资源学习dojo的绝好资源学习dojo的绝好资源学习dojo的绝好资源学习dojo的绝好资源学习dojo的绝好资源...
dojo中文文档下载。dojo中文文档下载。
dojo utils tools with data source sample java and javascript
CSS 2.0 & Dojo1.8 chm
dojo笔记dojo笔记dojo笔记dojo笔记dojo笔记dojo笔记dojo笔记dojo笔记dojo笔记dojo笔记dojo笔记