EasyUI随笔-splitbutton、menubutton伪动态添加

之所以说是“伪”动态,其实还是要借助Jquery来实现部分功能,而不是完全使用EasyUI的接口;这点不像ExtJs。

先说需求

   就是想做一个可以下拉的按钮组(如下图),这可以用splitbutton或menubutton实现!可采用下列两种方式(都是官网的):


方式1、HTML标记法

<a href="javascript:void(0)" id="mb" class="easyui-menubutton" 
        data-options="menu:'#mm',iconCls:'icon-edit'">Edit</a>
<div id="mm" style="width:150px;">
    <div data-options="iconCls:'icon-undo'">Undo</div>
    <div data-options="iconCls:'icon-redo'">Redo</div>
    <div class="menu-sep"></div>
    <div>Cut</div>
    <div>Copy</div>
    <div>Paste</div>
    <div class="menu-sep"></div>
    <div data-options="iconCls:'icon-remove'">Delete</div>
    <div>Select All</div>
</div>

方式2、伪脚本

<a href="javascript:void(0)" id="mb">Edit</a>
<div id="mm" style="width:150px">
...
</div>

$('#mb').menubutton({
    iconCls: 'icon-edit',
    menu: '#mm'
});

进而提出问题

    样子都建好了,那,我们最关心的按钮单击事件怎么处理?


借鉴了很多名家之言,发现,都是“再用Jquery方法”之类的说法,这多少感觉有点儿别扭!毕竟,还是有点儿想“全写代码”的方式来解决,不想每次都要先标记个Div,特别是这种子部件的情况。就是想在处理父级的时候,就能一并处理掉子键的事件呀什么的,比如单击。


关于处理这种子部件的事件,我是这样子的

A、Jquery附加子菜单容器(必须):

$('#personalConfig').append("<div id=\"personalConfigMenu\"></div>");


B、生成menubutton(必须):

$('#personalConfig').menubutton({
                iconCls: 'icon-user',
                menu: '#personalConfigMenu'
            });

C、追加子键,并处理事件

            $('#personalConfigMenu').menu('appendItem', {
                text: '注销',
                iconCls: 'icon-logoff',
                onclick: function () { alert('New Item') }
            });

注意,B处生成的是menubutton,而C处使用的是menu方法,这是因为menubutton继承自menu的缘故。其实appendItem方法,就是往personalConfigMenu容器中追加一个div而已。

这样,至少不用在页面里面去事先写HTML标记了






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值