DWZ (JUI)表格Table单击选中功能扩展

原本DWZ框架提供的单选功能是单击选中表单上某一记录,点击设置好a标签按钮,URL自动加上记录Id并执行URL,打开新窗口或者ajax提交,可实现对该条记录的更新(删除、修改)。这些功能已经很强大了,但是实际项目还会有更复杂的操作,而不单单是url的请求执行,所以本人就对单击选中功能做了扩展。
先介绍原有的功能,为理解接下来的新扩展提供理论基础。
原有功能html端表现:

//a标签按钮,{xxx_id}大括号里的名称是与表单的tr标签属性target的值是一致的
//表单的tr标签属性rel的值就是该行记录的ID值,也就是{xxx_id}所代表的值
<div class="panelBar">
    <ul class="toolBar">
    <li class="">
    //target="navTab"即打开新的页签,target="dialog"即弹出小窗口,title的值为窗口或页签的名
    //target="ajaxTodo"即ajax提交,title的值为确认执行的弹框提示内容
    <a class="edit" href="xxx/xxx?id={xxx_id}" target="navTab" title="xx">
    <span>修改</span>
    </a>
    </li>
    </ul>
</div>
//可单选的表单
<table >
...
<tbody>
    <tr target="xxx_id" rel="1" >
    <td >xxx</td>...
    </tr>           
</tbody>
</table >

原有功能javascript端表现:

//dwz.ui.js文件在大概265行到280行(这边有改动,所以是大概位置)
// navTab
    $("a[target=navTab]", $p).each(function(){
        $(this).click(function(event){
            var $this = $(this);
            var title = $this.attr("title") || $this.text();
            var tabid = $this.attr("rel") || "_blank";
            var fresh = eval($this.attr("fresh") || "true");
            var external = eval($this.attr("external") || "false");
            var url = unescape($this.attr("href")).replaceTmById($(event.target).parents(".unitBox:first"));
            DWZ.debug(url);
            if (!url.isFinishedTm()) {
                alertMsg.error($this.attr("warn") || DWZ.msg("alertSelectMsg"));
                return false;
            }
            navTab.openTab(tabid, url,{title:title, fresh:fresh, external:external});
            event.preventDefault();
        });
    });

以上是原有target=”navTab”打开新的页签的功能全部,本人就是以这个为参照,做出更灵活的扩展功能。
以下就是具体实现:
在dwz.ui.js里navTab实现方法之后加如下jq代码(即initUI(_box)方法里):

//新的单击选中功能,是自定义target="editOne",并在a标签里自定义属性editOne="youfunc()"实现的
// clickOne
    $("a[target=editOne]", $p).each(function(){
        $(this).click(function(event){
            var $this = $(this);
            var title = $this.attr("title") || $this.text();
            //获取editOne属性的值即自定义的js函数
            var url = unescape($this.attr("editOne")).replaceTmById($(event.target).parents(".unitBox:first"));
            DWZ.debug(url);
            if (!url.isFinishedTm()) {
                alertMsg.error($this.attr("warn") || DWZ.msg("alertSelectMsg"));
                return false;
            }
            //执行自定义的js函数
            eval(url);
            event.preventDefault();
        });
    });

html的扩展实现:

<a class="edit" editOne="youfunc({xxx_id})" target="editOne"><span>XXX</span></a>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DataVault善战

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值