# 控件ID
在控件描述文件中，我们可以使用“id“属性能设置控件的id， 这个id会设置到控件对应的dom元素上

## 控件ID的作用
像DOM体系，bricks使用控件ID用🐟标识控件，不一定要求唯一，但在使用时通常只会使用找到的一个控件

bricks的事件处理依赖控件id来确认事件的发起控件， 事件的目标控件以及事件的数据来源控件

## 控件查找开始位置
从binds区域所在的控件开始查找，对于"."号分割的id，首先从当前位置查找到第一段id的控件，再用上一个找到的控件作为下一段id的开始位置，直到最后一段，并将最后一段找到的控件作为最终控件返回。如果任何一个位置的id没找到对应的控件，返回空。

## 控件ID书写规则

bricks事件处理中的控件ID， 通过“."号开分段，标识要分段查找相应的控件。

## 控件查找方向
"-"号开始的id从当前位置向上查找控件
否则从当前位置向下查找

## 预定于的id
预定义的id通常放在"."分割的第一段，用来改变控件查找的开始位置

### app
"app“ bricks.App属性，也是Body控件，对应于html的<body>元素

### root
bricks前端应用只放一个控件在bricks.Body中，所有其他的控件都放在这个root控件之下， "root"ID用于查找这个控件

### self
binds区域所在的控件

## binds区域中和控件ID有关的属性


### wid
字符串属性，定义事件发起方的id， 缺省为"self"

### target
定义事件处理的控件， 下面对不同的事件处理方式分别说明

#### urlwidget
target控件是此事件生成的子控件的父控件，需要是个容器控件
参看[控件表述文件](descjson.md)

#### method
事件的method方法的控件。

#### script
script脚本可用this变量来使用target对应的控件

#### registerfunction
注册函数可以使用this变量来使用target对应的控件

#### event
定义触发事件的控件实体
 
### datawidget
定义事件的参数来源对象，如果找到此控件，则通过该控件的datamethod（如果定义）方法来获取参数，或者通过datascript脚本来获取参数
获得的参数将会添加到binds事件处理定义中说明的参数中

