ht.widget.ContextMenu(json)

new ContextMenu(json)

创建右键菜单

Parameters:
Name Type Attributes Description
json string | Array.<MenuParams> <optional>

当数组对象为字符串 separator 时为分割线

Requires:
  • module:ht-menu.js
  • module:ht-contextmenu.js

Requires

  • module:ht-menu.js
  • module:ht-contextmenu.js

Methods

addTo(container) → {void}

指定右击菜单相应的 DOM 节点

Parameters:
Name Type Attributes Description
container HTMLElement <optional>

父 DOM

Returns:
void

addToDOM(parentNode) → {void}

将视图插入到 DOM 中,不指定 dom 节点默认添加到 body 下

Parameters:
Name Type Attributes Description
parentNode HTMLDivElement <optional>

父 DOM

Returns:
void

addViewListener(listener, scope, ahead) → {void}

监听视图事件,如布局、刷新等

Parameters:
Name Type Attributes Description
listener function

监听器函数

scope object <optional>

监听器函数域

ahead boolean <optional>

是否将当前监听器插入到监听器列表开头

Returns:
void

afterHide() → {void}

菜单隐藏之后被调用

Returns:
void

afterShow(event) → {void}

菜单显示之后被调用

Parameters:
Name Type Description
event Event
Returns:
void

beforeShow(event) → {void}

菜单显示之前被调用,可以重写此方法实现动态菜单功能

Parameters:
Name Type Description
event Event
Returns:
void

disableGlobalKey() → {void}

禁用全局快捷键

Returns:
void

dispose() → {void}

销毁此组件

Returns:
void

enableGlobalKey() → {void}

启用全局快捷键,一旦启用此选项,菜单不再使用时需要显式调用 contextmenu#dispose dispose 销毁菜单

Returns:
void

fireViewEvent(kind) → {void}

Parameters:
Name Type Description
kind string
Returns:
void

getClass() → {function}

获取类声明(构造函数)

Returns:
function -

类声明(构造函数)

getDisabledDiv() → {HTMLElement}

获取被禁用组件的 div

Returns:
HTMLElement -

被禁用组件的 div

getHeight() → {number}

获取布局高度

Returns:
number -

布局高度

getItemById(id) → {any}

根据id值找到对应的 item 元素

Parameters:
Name Type Description
id string

id 值

Returns:
any -

item 元素

getItemByProperty(property, value) → {object}

查找属性名为 property,值为 value 的菜单项,只返回第一个查找结果

Parameters:
Name Type Description
property string

属性名

value any

Returns:
object

getItems() → {string|Array.<object>}

获取所有菜单项

Returns:
string | Array.<object> -

所有菜单项

getRelatedView() → {HTMLDivElement}

获取右击菜单组件响应的 DOM

Returns:
HTMLDivElement -

右击菜单组件响应的 DOM

getRowHeight() → {number}

获取默认行高

Returns:
number -

行高

getSuperClass() → {function}

获取父类声明(构造函数)

Returns:
function -

父类声明(构造函数)

getView() → {HTMLDivElement}

获取组件的根层 div

Returns:
HTMLDivElement

getVisibleFunc() → {function}

获取可见过滤器函数

Returns:
function

getWidth() → {number}

获取布局宽度

Returns:
number

hide() → {void}

隐藏菜单

Returns:
void

invalidate(delay) → {void}

无效组件,并调用延时刷新

Parameters:
Name Type Attributes Description
delay number <optional>

延迟刷新的间隔事件(单位: ms )

Returns:
void
See:
  • contextmenu#iv iv

isDisabled() → {boolean}

组件是否处于不可用状态,处于此状态时不能进行任何操作并且会遮挡一层蒙板

Returns:
boolean

isShowing() → {boolean}

组件是否处于可见状态

Returns:
boolean -

组件是否处于可见状态

iv(delay) → {void}

无效组件,并调用延时刷新

Parameters:
Name Type Attributes Description
delay number <optional>

延迟刷新的间隔事件(单位: ms )

Returns:
void
See:
  • contextmenu#invalidate invalidate

layout(x, y, width, height) → {void}

执行布局

Parameters:
Name Type Description
x number

视图左上角布局 x 点位置

y number

视图左上角布局 y 点位置

width number

视图宽度

height number

视图高度

Returns:
void

removeViewListener(listener, scope) → {void}

删除视图事件监听器

Parameters:
Name Type Attributes Description
listener function

监听器函数

scope object <optional>

监听器函数域

Returns:
void

setCursor(style) → {void}

设置 css 的鼠标样式,cursor

Parameters:
Name Type Description
style string
Returns:
void

setDisabled(value, iconUrl) → {void}

设置组件是否处于不可用状态,处于不可用状态时不能进行任何操作并且会遮挡一层蒙板

Parameters:
Name Type Attributes Description
value boolean

是否禁用组件

iconUrl string <optional>

蒙板上显示的 icon 的路径

Returns:
void

setFocus(value) → {void}

根据值给组件设置焦点

Parameters:
Name Type Attributes Description
value string <optional>
Returns:
void

setHeight(height) → {void}

设置布局高度

Parameters:
Name Type Description
height number

高度值

Returns:
void

setItems(items) → {void}

设置菜单项,参数为 JSON 对象

Parameters:
Name Type Description
items string | Array.<object>

菜单项配置数组

Returns:
void
Example
//event格式:
[{
     label: '', //菜单文字
     icon: '', //菜单图片 ICON
     type: "check" | "radio", //可多选的菜单项 | 单选菜单项
     groupId: 1 //菜单项分组, 当 type 为 radio 有用
     disabled: true //禁用菜单项,可以是函数,由返回值决定是否禁用
     href: "http://www.hightopo.com", //超链到某个 URL
     linkTarget: "_blank", //超链目标,默认 _self
     key: [Key.ctrl, Key.enter], //实际响应的快捷键
     suffix: "Ctrl+Enter", //在菜单上显示的提示文字
     preventDefault: false, //是否阻止快捷键默认的行为,默认为 true
     visible: true, //是否可见,可为 Boolean,也可以是 function
}]

setItemVisible(id, visible) → {void}

设置指定 id 的菜单项是否可见

Parameters:
Name Type Description
id string

菜单项 id

visible boolean

是否可见

Returns:
void

setLabelMaxWidth(maxWidth) → {void}

设置菜单中 label 的最大宽度,如果 label 过长会出现跑马灯效果

Parameters:
Name Type Description
maxWidth number

最大宽度

Returns:
void

setVisibleFunc(func) → {void}

设置可见过滤器

Parameters:
Name Type Description
func function

过滤器函数

Returns:
void

setWidth(width) → {void}

设置布局宽度

Parameters:
Name Type Description
width Number

过滤器函数

Returns:
void

show(x, y, mouseOffset) → {void}

显示菜单, x、y 为菜单显示页面在中的坐标

Parameters:
Name Type Attributes Description
x number | Event

x 坐标,当仅有一个参数可以传入鼠标事件

y number <optional>

y 坐标

mouseOffset boolean <optional>

是否默认相对传入位置偏移

Returns:
void

showOnView(view, x, y) → {void}

在对应组件上显示菜单

Parameters:
Name Type Attributes Description
view any

组件,可以是 DOM 或者 ht 组件

x number | Event

x 坐标,当仅有二个参数可以传入鼠标事件

y number <optional>

y 坐标

Returns:
void

validate() → {void}

立刻刷新拓扑

Returns:
void

validateImpl() → {void}

刷新

Returns:
void