# bi.expander

## 可以实现展开收起的面板,基类[BI.Widget](/core/widget.md)

{% method %}
[source](https://jsfiddle.net/fineui/2xavqk4k/)

{% common %}
```javascript

BI.createWidget({
  type: "bi.expander",
  element: "#wrapper",
  el: {
    type: "bi.icon_text_node",
    cls: "pull-right-ha-font",
    height: 25,
    text: "Expander"
  },
  popup: {
    items: [{
      type: "bi.single_select_item",
      height: 25,
      text: "项目1",
      value: 1
    }, {
      type: "bi.single_select_item",
      height: 25,
      text: "项目2",
      value: 2
    }]
  }
});



```

{% endmethod %}

## API
##### 基础属性
| 参数    | 说明           | 类型  | 可选值 | 默认值
| :------ |:-------------  | :-----| :----|:----
| el | 自定义下拉框trigger | object | — |{ }|
| trigger | 下拉列表的弹出方式  | string |  click,hover | "click" |
| adjustLength | 弹出列表和trigger的距离 | number | — | 0 |
| toggle | 切换状态 | boolean | true,false | true |
| direction | 弹出列表和trigger的位置关系 | string | top | bottom | left | right | top,left | top,right | bottom,left | bottom,right  | "bottom"|
| isDefaultInit | 是否默认初始化子节点 |boolean | true,false | false |
| popup | 弹出层 | object | — | { }|
| expanderClass | 展开类 | string | —| "bi-expander-popup" |
| hoverClass | hover类| string | — | "bi-expander-hover" |



## 对外方法
| 名称     | 说明                           |  回调参数     
| :------ |:-------------                  | :-----   
| populate | 刷新列表 | items  |
| setValue | 设置combo value值| v |
| getValue | 获取combo value值 | —|
| isViewVisible | 弹窗层是否可见 | —|
| showView | 显示弹出层| —|
| hideView | 隐藏弹出层| —|
| getView | 获取弹出层| —|
| getAllLeaves | 获取所有的叶子节点 | —|
| getNodeById | 根据id获取节点 | id |
| getNodeByValue | 根据value值获取节点 | value |
| isExpanded |  节点是否展开 | — |

## 事件
| 名称     | 说明                |
| :------ |:------------- |
|BI.Expander.EVENT_TRIGGER_CHANGE | trigger发生改变触发   |
|BI.Expander.EVENT_CHANGE |  弹出层点击触发          |
|BI.Expander.EVENT_EXPAND |  Expander展开触发   |
|BI.Expander.EVENT_COLLAPSE |    Expander收起触发
|BI.Expander.EVENT_AFTER_INIT |  Expander初始化后触发 |
|BI.Expander.EVENT_BEFORE_POPUPVIEW | 下拉列表弹出前触发 |
|BI.Expander.EVENT_AFTER_POPUPVIEW | 下拉列表弹出后触发 |
|BI.Expander.EVENT_BEFORE_HIDEVIEW | 下拉列表收起前触发 |
|BI.Expander.EVENT_AFTER_HIDEVIEW | 下拉列表收起后触发 |

---