zoukankan      html  css  js  c++  java
  • 给easyui datagrid 添加mouseover和mouseout事件

    熟悉jQuery的朋友一定熟悉它的datagrid组件,虽然不是专业的grid组件,但是使用起来还是相当方便的,功能也很到位,从1.2.4 版本开始,datagrid添加了onRowContextMenu事件,即行右键事件,多用来处理右键菜单,还有一个是表头右键事件 onHeaderContextMenu。

    不过做项目的时候让用户还要点击一下右键才能弹出菜单,从交互上讲不是很友好,要是鼠标经过的时候就能弹出菜单,那就不错了,就像 wordpress后台评论管理页面,鼠标经过评论列表的时候便会出现“删除”、“审核”等操作按钮。如何给jQuery easyui datagrid添加mouseover和mouseout事件,其实很简单。

    首先打开jquery.easyui.min.js文件,搜索一下自身已经绑定的onRowContextMenu事件,然后依葫芦画瓢,就很简单了,只是添加事件,几乎不涉及复杂代码,在6019行左右搜索到以下代码:

    1bind("contextmenu.datagrid",function(e){
    2var _400=$(this).attr("datagrid-row-index");
    3if(opts.onRowContextMenu){
    4opts.onRowContextMenu.call(_3fa,e,_400,data.rows[_400]);
    5}
    6});

    同样的,还有一处,那就是默认值,大概在7405行左右:

    1onRowContextMenu:function(e,_576,_577){
    2}

    然后跟着样子绑定:

    01.bind("mouseover.datagrid",function(e){
    02var _400=$(this).attr("datagrid-row-index");
    03if(opts.onRowMouseoverMenu){
    04opts.onRowMouseoverMenu.call(_3fa,e,_400,data.rows[_400]);
    05}
    06}).bind('mouseout.datagrid', function(e) {
    07var _400 = $(this).attr('datagrid-row-index');
    08if (opts.onRowMouseoutMenu) {
    09opts.onRowMouseoutMenu.call(_3fa, e, _400, data.rows[_400]);
    10}
    11});

    跟着样子设置默认值:

    1onRowMouseoverMenu:function(e,_576,_577){
    2},onRowMouseoutMenu:function(e,_576,_577){
    3}

    到这个地方就算搞定了,很容易吧,对javascript的原型继承机制还没有深入研究,所以也只能做些皮毛的改动了。

    在实际应用的时候仅仅靠这两个事件是远远不够的,菜单的延时显示,已经快速经过row时要中断延时,直接不显示,这就要配合setTimeout和clearTimeout使用了,改了下easyui demo里面的datagrid3.html文件以做演示:

    点击此处查看演示效果

  • 相关阅读:
    .net基础学java系列(一)视野
    技术栈
    Apollo(阿波罗)携程开源配置管理中心
    .NET 动态调用WCF
    RPC 工作原理
    ServiceStack 简单使用
    PRC 框架选择
    栈vs堆,最详细的对比
    使用SuperSocket打造逾10万长连接的Socket服务
    开源项目练习EF+jQueryUI前后端分离设计
  • 原文地址:https://www.cnblogs.com/shihao/p/2489367.html
Copyright © 2011-2022 走看看