Skip to content

Menu(菜单)

使用$.fn.iMenu.defaults重写默认值对象。

菜单组件通常用于快捷菜单。他是构建其他菜单组件的必备基础组件。比如:menubutton和splitbutton。它还可以用于导航和执行命令。

使用案例

创建菜单

通过标签创建菜单,给<div/>标签添加data-toggle="topjui-menu"。每个菜单项都通过<div/>标签创建。我们可以添加'iconCls'属性来给菜单项定义一个图标显示到菜单项的左侧。添加'menu-sep'类ID菜单项将会生成一个菜单分割线。

html
<div id="mm" data-toggle="topjui-menu" style="width:120px;">
    <div>New</div>
    <div>
        <span>Open</span>
        <div style="width:150px;">
            <div><b>Word</b></div>
            <div>Excel</div>
            <div>PowerPoint</div>
        </div>
    </div>
    <div data-options="iconCls:'icon-save'">Save</div>
    <div class="menu-sep"></div>
    <div>Exit</div>
</div>

使用Javascript创建菜单项并监听'onClick'事件。

javascript
$('#mm').iMenu({
    onClick:function(item){
        //...
    }
});

显示菜单

在菜单被创建的时候它是隐藏和不可见的。调用'show'方法显示菜单。

javascript
$('#mm').iMenu('show', {
  left: 200,
  top: 100
});

菜单项

菜单项代表显示在菜单上的一个单独的项目。它包含以下属性:

属性名属性值类型描述默认值
idstring菜单项ID属性。
textstring菜单项文本。
iconClsstring显示在菜单项左侧的16x16像素图标的CSS类ID。
hrefstring设置点击菜单项时候的页面位置。
disabledboolean定义是否显示菜单项。false
onclickfunction在点击菜单项的时候调用的函数。

菜单属性

属性名属性值类型描述默认值
zIndexnumber菜单z-index样式,增加它的值。110000
leftnumber菜单的左边距位置。0
topnumber菜单的上边距位置。0
alignstring菜单对齐方式,可用值有:'left' 和 'right'。left
minWidthnumber菜单的最小宽度。120
itemHeightnumber菜单项高度。22
durationnumber该属性允许用户自定义隐藏菜单动画的持续时间,以毫秒为单位。100
hideOnUnhoverboolean当设置为true时,在鼠标离开菜单的时候将自动隐藏菜单。true
inlineboolean当设置为true时,菜单将相对于父级标签进行定位,否则相对于body进行定位。false
fitboolean当设置为true时,菜单尺寸将自动适配父容器。false
nolineboolean当设置为true时,菜单将不显示图标和文字之间的分割线。false

菜单事件

事件名事件参数描述
onShownone在菜单显示之后触发。
onHidenone在菜单隐藏之后触发。
onClickitem在菜单项被点击的时候触发。下面的例子显示了如何处理所有菜单项的点击:
html
<div data-toggle="topjui-menu" data-options="onClick:menuHandler" style="width:120px;">
    <div data-options="name:'new'">新建</div>
    <div data-options="name:'save',iconCls:'icon-save'">保存</div>
    <div data-options="name:'print',iconCls:'icon-print'">打印</div>
    <div class="menu-sep"></div>
    <div data-options="name:'exit'">退出</div>
</div>
<script type="text/javascript">
    function menuHandler(item) {
        alert(item.name)
    }
</script>

菜单方法

方法名方法参数描述
optionsnone返回属性对象。
showpos显示菜单到指定的位置。'pos'参数有2个属性:left:新的左边距位置。top:新的上边距位置。
hidenone隐藏菜单。
destroynone销毁菜单。
getItemitemEl获取指定的菜单项。得到的是一个菜单项的DOM元素。
setTextparam设置指定菜单项的文本。'param'参数包含2个属性:target:DOM对象,要设置值的菜单项。text: 字符串,要设置的新文本值。
setIconparam设置指定菜单项图标。'param'参数包含2个属性:target:DOM对象,要设置的菜单项。iconCls:新的图标CSS类ID。
findItemtext查找的指定菜单项,返回的对象和getItem方法是一样的。
appendItemoptions追加新的菜单项,'options'参数代表新菜单项属性。默认情况下添加的项在菜单项的顶部。追加一个子菜单项,'parent'属性应该设置指定的父项元素,并且该父项元素必须是已经定义在页面上的。
removeItemitemEl移除指定的菜单项。
enableItemitemEl启用菜单项。
disableItemitemEl禁用菜单项。
showItemitemEl显示菜单项。
hideItemitemEl隐藏菜单项。
resizemenuEl重置指定的菜单项。

基于最新稳定版jQuery EasyUI构建的前端框架