扩展 jQuery EasyUI Datagrid 数据行鼠标悬停/离开事件(onMouseOver/onMouseOut)

客户需求:

jQuery EasyUI Datagrid 用户列表鼠标悬停/离开数据行时显示人员头像(onMouseOver/onMouseOut)

如图所示,Datagrid 鼠标悬停/离开数据行时切换了不同的样式显示:

此时用谷歌开发者工具审查鼠标悬停行元素时发现,table tr 节点 class 属性中增加了 datagrid-row-over 样式:

于是打开 jquery.easyui.min.js 脚本,查找 datagrid-row-over 关键字,6983 行中发现关键字:

 

根据脚本 6974 行看出,此段脚本是为 Datagrid 绑定 mouseover 事件,紧接着便是 mouseout 事件的绑定。

之后参照文章http://www.loststop.com/archive/soft-and-internet/3819.html修改,发现作者用的版本为 jQuery EasyUI 1.2.4 ,奈何 jQuery EasyUI 现在已更新版本至 1.3.4(注:本文使用 jQuery EasyUI 1.3.2 版),脚本内容较之前版本变化太大,遂照葫芦画瓢摸索着扩展了 Datagrid 的 mouseover  及 mouseout 事件,具体步骤如下:

1、扩展添加 onMouseOverRow 事件

var row=opts.finder.getRow(_4a5,_4af);  
opts.onMouseOverRow.call(_4a5,e,_4af,row);

扩展后如图所示:

2、扩展添加 onMouseOutRow 事件

var row=opts.finder.getRow(_4a5,_4b1);  
opts.onMouseOutRow.call(_4a5,e,_4b1,row);  

扩展后如图所示:

至此,只需四句代码即可实现 Datagrid mouseover 及 mouseout 事件的扩展,扩展后具体应用如下:

<script type="text/javascript">  
    $(function(){  
        $('#baidu').datagrid({  
            url: 'www.baidu.com',  
            fit:true,  
            fitColumns: true,  
            pagination:true,  
            pageSize:10,  
            pageList:[10,20,50,80],  
            singleSelect:true,  
            onMouseOverRow:function(e, rowIndex, rowData){  
                alert("Over~");  
            },  
            onMouseOutRow:function(e,rowIndex, rowData){  
                alert("Out~");  
            }  
        });  
    });  

扩展 jQuery EasyUI Datagrid 数据行鼠标悬停离开事件demo下载:http://download.csdn.net/detail/for_china2012/6419133

效果图如下:

【第二种实现方式】

这种方式较第一种来说简单实用,具体实现代码如下:

    onLoadSuccess:function(){  
        $(".datagrid-row").mouseover(function(){  
            var url = $(this).children("td").eq(0).text(); //表示第一个td,也就是第一列,想要获得其他的列可以是eq(1)...等。
            if (url == "") {  
                $("#show_img").attr("src", "${ctx}/images/person.jpg");  
            } else {  
                $("#show_img").attr("src", "${ctx}/" + url);  
            }  
            $("#preview").css("top", ($(this).offset().top - xOffset) + "px").css("left", ($(this).offset().left + yOffset) + "px").fadeIn("slow");  
        });  
        $(".datagrid-row").mouseout(function(){  
            $("#preview").hide();  
        });  
    }  

在 DataGrid 初始化时通过 onLoadSuccess 时间绑定数据表格行鼠标悬停离开事件,审查元素得知,DataGrid 生成的数据表格行都含有class=“datagrid-row”样式,之后通过 jQuery 获得当前行下指定列内容即可:

    var url = $(this).children("td").eq(0).text();  

获得内容之后怎么处理就交给你了。。。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值