`
ruruhuang
  • 浏览: 193697 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Hack dojo codes with dojo&aposs util

阅读更多
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精品中文教程(包一)

    Dojo with Adobe AIR Dojo 工具包教程 Dojo 快速安装 Dojo和JSON建立无限级AJAX动态加载的功能模块树 Dojo学习笔记( 模块与包) Dojo学习笔记-- djConfig解说 Dojo学习笔记-- dojo.dom Dojo学习笔记-- dojo....

    dojo精品中文教程(包二)

    Dojo with Adobe AIR Dojo 工具包教程 Dojo 快速安装 Dojo和JSON建立无限级AJAX动态加载的功能模块树 Dojo学习笔记( 模块与包) Dojo学习笔记-- djConfig解说 Dojo学习笔记-- dojo.dom Dojo学习笔记-- dojo....

    dojo精品中文教程(全)

    Dojo with Adobe AIR Dojo 工具包教程 Dojo 快速安装 Dojo和JSON建立无限级AJAX动态加载的功能模块树 Dojo学习笔记( 模块与包) Dojo学习笔记-- djConfig解说 Dojo学习笔记-- dojo.dom Dojo学习笔记-- dojo....

    dojo精品中文教程(包三)

    Dojo with Adobe AIR Dojo 工具包教程 Dojo 快速安装 Dojo和JSON建立无限级AJAX动态加载的功能模块树 Dojo学习笔记( 模块与包) Dojo学习笔记-- djConfig解说 Dojo学习笔记-- dojo.dom Dojo学习笔记-- dojo....

    Dojo包下载 包含dijit dojo dojox util四个文件目录

    这个包下载包含了四个主要的文件目录:dijit、dojo、dojox 和 util,这些都是Dojo框架的核心部分。 1. **dojo**: 这是Dojo框架的基础模块,包含了许多核心功能,如模块加载(AMD, Asynchronous Module Definition)...

    dojo toturial with design best practise

    《dojo toturial with design best practise》是一本深入探讨Dojo框架并结合设计模式实践的书籍。这本书旨在帮助开发者不仅掌握Dojo库的基本用法,还能理解如何在实际项目中运用设计模式,以提高代码质量和可维护性...

    dojo:Dojo是适用于D&D(5E)地牢大师的Web应用程序。 它可以用来设计怪物以及计划和进行战斗

    道场Dojo是适用于D&D(5E)地牢大师的Web应用程序。 您可以在找到它。 如果您想为发展做出贡献,请。特征怪物设计师您可以使用内置的怪物设计器来构建自己的怪物,这使您可以对照其他类似的怪物来检查自己的作品。 ...

    dojo dojo实例 dojo例子 dojo资料 dojo项目 dojo实战 dojo模块 dojo编程

    Dojo 是一个强大的JavaScript工具库,它为Web开发提供了丰富的功能和组件,涵盖了从DOM操作、事件处理到AJAX通信等多个方面。Dojo的核心在于它的模块化系统,这使得开发者可以按需加载代码,提高应用的性能和可维护...

    dojo Reference Guide & API Documentation 1.4.2(CHM)

    dojo Reference Guide & API Documentation

    dojo文档 dojo文档 dojo文档

    dojo文档 dojo文档 dojo文档 dojo文档 dojo文档 dojo文档 dojo文档 dojo文档 dojo文档 dojo文档 dojo文档 dojo文档

    DOJO 学习笔记 dojo

    Dojo 是一个功能丰富的 JavaScript 库,它提供了一系列模块化、面向对象的工具,用于构建高性能的 Web 应用程序。在 Dojo 中,模块和包的概念是核心组成部分,它们帮助开发者组织和管理代码,使其更易于维护和重用。...

    dojo utils tools with datas

    在"dojo utils tools with data source sample java and javascript"这个描述中,我们可以理解到这是一个关于使用Dojo Utils与数据源交互的示例,涵盖了Java和JavaScript两个主要编程语言。这表明不仅在前端,可能还...

    dojo中文文档-dojo手册

    《dojo中文文档-dojo手册》提供了全面而深入的Dojo框架知识,这是一份非常有价值的资源,对于想要理解和掌握Dojo JavaScript库的开发者来说至关重要。Dojo是一个强大的JavaScript工具包,它提供了丰富的功能,包括...

    DOJO API 中文参考手册,附加注解实例(精心重新排版DOC文档)

    手册中列举了一些常用的Dojo包,如dojo.io用于不同类型的IO传输,dojo.dnd提供拖放功能的API,dojo.string提供了字符串处理方法,dojo.date帮助解析和操作日期,dojo.event处理事件驱动和AOP开发,dojo.back管理撤销...

    精通Dojo by Dojo之父

    Dojo是一个非常强大的、面向对象的、开源的JavaScript工具箱,它为开发富客户端Ajax应用提供了一套完整的小部件和一些特效操作。曾经有人这样说:“对于一个Web开发者而言,如果没有Dojo,他将是一个“残废”的...

    dojo js dojo js

    dojo js dojo js dojo js dojo js dojo js dojo js dojo js

    DOJO中文手册【出自dojo中国】

    DOJO中文手册是针对JavaScript库Dojo的详细指南,源自中国的本地化版本,旨在帮助开发者理解和使用这个强大的工具包。Dojo是一个开源的DHTML工具集,由nWidgets、Burstlib和f(m)等多个项目的合并发展而来,因此被...

    dojo1.8.3官方demo

    "去掉了dojo的util文件夹"意味着该压缩包不包含util模块,这通常用于提供一些通用的工具函数,但删除它不影响基本功能的运行,因为Dojo的核心功能仍然存在。 Dojo 1.8.3 的主要知识点包括: 1. **dojo/_base**: 这...

    dojo快速入门文档

    ### Dojo 快速入门知识点详解 #### 一、Dojo 概览 Dojo 是一个功能强大且灵活的开源 JavaScript 库,主要用于构建高性能的富客户端 Web 应用程序。Dojo 提供了一系列工具和组件,使得开发者能够轻松创建交互式 Web...

Global site tag (gtag.js) - Google Analytics