`
默默的小熊
  • 浏览: 232767 次
社区版块
存档分类
最新评论

dijit._Contained源码

    博客分类:
  • dojo
 
阅读更多

define("dijit/_Contained", ["dojo", "dijit"], function(dojo, dijit) {

dojo.declare("dijit._Contained",
		null,
		{
			// summary:
			//		Mixin for widgets that are children of a container widget
			//
			// example:
			// | 	// make a basic custom widget that knows about it's parents
			// |	dojo.declare("my.customClass",[dijit._Widget,dijit._Contained],{});

			getParent: function(){
				// summary:
				//		Returns the parent widget of this widget, assuming the parent
				//		specifies isContainer
				var parent = dijit.getEnclosingWidget(this.domNode.parentNode);
				return parent && parent.isContainer ? parent : null;
			},

			_getSibling: function(/*String*/ which){
				// summary:
				//      Returns next or previous sibling
				// which:
				//      Either "next" or "previous"
				// tags:
				//      private
				var node = this.domNode;
				do{
					node = node[which+"Sibling"];
				}while(node && node.nodeType != 1);
				return node && dijit.byNode(node);	// dijit._Widget
			},

			getPreviousSibling: function(){
				// summary:
				//		Returns null if this is the first child of the parent,
				//		otherwise returns the next element sibling to the "left".

				return this._getSibling("previous"); // dijit._Widget
			},

			getNextSibling: function(){
				// summary:
				//		Returns null if this is the last child of the parent,
				//		otherwise returns the next element sibling to the "right".

				return this._getSibling("next"); // dijit._Widget
			},

			getIndexInParent: function(){
				// summary:
				//		Returns the index of this widget within its container parent.
				//		It returns -1 if the parent does not exist, or if the parent
				//		is not a dijit._Container

				var p = this.getParent();
				if(!p || !p.getIndexOfChild){
					return -1; // int
				}
				return p.getIndexOfChild(this); // int
			}
		}
	);


return dijit._Contained;
});
 
分享到:
评论

相关推荐

    dojo 树形列表 dijit.tree

    Dijit是Dojo Toolkit的一部分,专门提供了一系列可复用的UI控件,其中包括我们关注的“dijit.tree”,即树形列表。在本篇文章中,我们将深入探讨这五个关于dijit.tree的例子,并了解如何在实际应用中实现它们。 1. ...

    dojo生命周期

    当创建新组件时,`dijit._Widget`作为基类,`dijit._Templated`作为混入类使用。可以通过`templateString`或`templatePath`属性指定模板,`widgetInTemplate`用于指示组件内是否包含其他子组件。模板中的`...

    dojo create custome widget

    这个类通常会继承Dojo的内置Widget基类,如`dijit._WidgetBase`和`dijit._TemplatedMixin`,以获取基本的Widget功能和模板支持。 3. **定义属性(Attributes)**:在Widget类中定义属性,这些属性可以在实例化时...

    麻雀虽小五脏俱全 Dojo自定义控件应用

    dojo.declare("hello.world", [dijit._Widget, dijit._Templated], { // 控件模板 templateString: "你好,世界!</div>", // 构造函数 constructor: function(params, node) { // 初始化逻辑 }, // 控件...

    定义自己的dojo组件类

    dojo.declare("my.DateWidget", dijit._Widget, { templateString: dojo.cache("my", "templates/DateWidget.html", "myDateTemplate"), currentDate: new Date(), postCreate: function() { this.inherited...

    dojo精品中文教程(包一)

    Dojo学习笔记--dijit.TitlePane Dojo学习笔记--dijit.Tooltip Dojo学习笔记--dijit.Tree Dojo学习笔记--dojo.graphics.color & dojo.uri.Uri Dojo学习笔记--dojo.string & dojo.lang Dojo学习笔记--动态生成...

    dojo精品中文教程(包二)

    Dojo学习笔记--dijit.TitlePane Dojo学习笔记--dijit.Tooltip Dojo学习笔记--dijit.Tree Dojo学习笔记--dojo.graphics.color & dojo.uri.Uri Dojo学习笔记--dojo.string & dojo.lang Dojo学习笔记--动态生成...

    Dojo_digitDemo1

    如何使用dojo的digit组件, dojo.require("dijit.layout.ContentPane"); dojo.require("dijit.layout.TabContainer"); dojo.require("dijit.form.ValidationTextBox"); dojo.require("dijit.form.DateTextBox");

    dojo精品中文教程(包三)

    Dojo学习笔记--dijit.TitlePane Dojo学习笔记--dijit.Tooltip Dojo学习笔记--dijit.Tree Dojo学习笔记--dojo.graphics.color & dojo.uri.Uri Dojo学习笔记--dojo.string & dojo.lang Dojo学习笔记--动态生成...

    dojo精品中文教程(全)

    Dojo学习笔记--dijit.TitlePane Dojo学习笔记--dijit.Tooltip Dojo学习笔记--dijit.Tree Dojo学习笔记--dojo.graphics.color & dojo.uri.Uri Dojo学习笔记--dojo.string & dojo.lang Dojo学习笔记--动态生成...

    DoJo AccordionContainer close or open

    var _blankPane = new dijit.layout.ContentPane({ title: "", style: "height: 0px;", content: "" }); this.addChild(_blankPane); // 添加到 AccordionContainer 中 ``` 3. **CSS 覆写**:为了使空白的 ...

    Dojo-China.zip_chinadojo1688_dojo_dojo 实战_dojo中文网

    9. **dijit**: dijit是Dojo的UI组件库,包含了一系列可复用的、响应式的、易于定制的界面元素,如按钮、表单、对话框等。 10. **dojox**: dojox是Dojo的扩展库,包含了一些更高级或实验性的功能,如图表、地理空间...

    arcgis_javascript实现鹰眼功能实例

    在这个案例中,我们将关注于如何使用ArcGIS JavaScript API中的`esri.dijit.OverviewMap`来实现鹰眼功能。 ### 鹰眼功能实现原理 “鹰眼”(Overview Map)是一个辅助性的地图控件,它以较小的比例尺展示地图的...

    基于ArcGIS JS API封裝工具条微件

    var toolbar = new dijit.Toolbar({id: "customToolbar"}, "customToolbar"); toolbar.startup(); ``` 2. **添加自定义按钮**: 自定义按钮可以通过`dijit/form/Button`创建,然后将其添加到工具条。每个按钮...

    dojo checkbox tree

    利用dojo的ajax实现树结构,带有checkbox功能

    DOJO 0.4.3

    例如,`dijit.form.Button`用于创建交互式按钮,`dijit.Dialog`则可以创建弹出式对话框。 4. **消息机制** DOJO 包含了消息传递和状态管理的机制。例如,`dojo.publish`和`dojo.subscribe`分别用于发布和订阅消息...

    这是一个dojo测试例子

    6. **dojo/test**:Dojo的测试框架,包括dojox.testing和dijit._WidgetTests等,用于编写和运行单元测试,确保代码的正确性。在压缩包中的"dojoTest"可能包含的就是这样的测试代码。 7. **dojo/_base/xhr**:Dojo的...

    水经注离线谷歌卫星地图加载服务中间件调用示例 For ArcGIS JS API.docx

    同时,编写JavaScript代码来初始化地图和加载所需的模块,如`esri.map`、`dijit.layout.BorderContainer`和`dijit.layout.ContentPane`。 以下是一个简单的JavaScript示例,用于创建地图实例: ```javascript dojo...

    Xpage学习笔记

    - **通过插入标签生成 dojo 按钮**:可以手动创建 `<div>` 并指定 `dojoType="dijit.form.Button"`。 - **使用 xpage 按钮控件**:可以直接使用 `<xp:button>` 标签,更加方便。 - **在按钮控件上使用事件处理程序...

    domino xpags开发combobox可手动输入

    这行代码会引入dijit.form.ComboBox模块,使得XPage能够识别并使用ComboBox控件。 接下来,我们创建ComboBox控件本身。在页面中添加以下XML代码: ```xml id="comboBox1" value="#{sessionScope.Test}" ...

Global site tag (gtag.js) - Google Analytics