zoukankan      html  css  js  c++  java
  • SlickGrid example 7:鼠标事件

    响应鼠标事件,可以左键快捷选择切换选项,可右键弹出菜单栏。


     
    代码:
    <!DOCTYPE HTML>
    <html>
    <head>
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
      <title>SlickGrid example 7: Events</title>
      <link rel="stylesheet" href="../slick.grid.css" type="text/css"/>
      <link rel="stylesheet" href="../css/smoothness/jquery-ui-1.8.16.custom.css" type="text/css"/>
      <link rel="stylesheet" href="examples.css" type="text/css"/>
      <style>
        .cell-title {
          font-weight: bold;
        }
    
        #contextMenu {
          background: #e1efc7;
          border: 1px solid gray;
          padding: 2px;
          display: inline-block;
          min-width: 100px;
          -moz-box-shadow: 2px 2px 2px silver;
          -webkit-box-shadow: 2px 2px 2px silver;
          z-index: 99999;
        }
    
        #contextMenu li {
          padding: 4px 4px 4px 14px;
          list-style: none;
          cursor: pointer;
          background: url("../images/arrow_right_peppermint.png") no-repeat center left;
        }
    
        #contextMenu li:hover {
          background-color: white;
        }
      </style>
    </head>
    <body>
    <table width="100%">
      <tr>
        <td valign="top" width="50%">
          <div id="myGrid" style="600px;height:500px;"></div>
        </td>
        <td valign="top">
          <h2>Demonstrates:</h2>
          <ul>
            <li>handling events from the grid:</li>
            <li>Right-click the row to open the context menu</li>
            <li>Click the priority cell to toggle values</li>
          </ul>
        </td>
      </tr>
    </table>
    <ul id="contextMenu" style="display:none;position:absolute">
      <b>Set priority:</b>
      <li data="Low">Low</li>
      <li data="Medium">Medium</li>
      <li data="High">High</li>
    </ul>
    
    <script src="../lib/firebugx.js"></script>
    
    <script src="../lib/jquery-1.7.min.js"></script>
    <script src="../lib/jquery-ui-1.8.16.custom.min.js"></script>
    <script src="../lib/jquery.event.drag-2.0.min.js"></script>
    
    <script src="../slick.core.js"></script>
    <script src="../slick.editors.js"></script>
    <script src="../slick.grid.js"></script>
    
    <script>
      var grid;
      var data = [];
      var columns = [
        {id: "title", name: "Title", field: "title",  200, cssClass: "cell-title", editor: Slick.Editors.Text},
        {id: "priority", name: "Priority", field: "priority",  80, selectable: false, resizable: false}
      ];
    
      var options = {
        editable: true,
        enableAddRow: false,
        enableCellNavigation: true,
        asyncEditorLoading: false,
        rowHeight: 30
      };
    
      $(function () {
        for (var i = 0; i < 100; i++) {
          var d = (data[i] = {});
          d["title"] = "Task " + i;
          d["priority"] = "Medium";
        }
    
        grid = new Slick.Grid("#myGrid", data, columns, options);
    
        grid.onContextMenu.subscribe(function (e) {
          e.preventDefault();
          var cell = grid.getCellFromEvent(e);
          $("#contextMenu")
              .data("row", cell.row)
              .css("top", e.pageY)
              .css("left", e.pageX)
              .show();
    
          $("body").one("click", function () {
            $("#contextMenu").hide();
          });
        });
    
        grid.onClick.subscribe(function (e) {
          var cell = grid.getCellFromEvent(e);
          if (grid.getColumns()[cell.cell].id == "priority") {
            var states = { "Low": "Medium", "Medium": "High", "High": "Low" };
            data[cell.row].priority = states[data[cell.row].priority];
            grid.updateRow(cell.row);
            e.stopPropagation();
          }
        });
      });
    
      $("#contextMenu").click(function (e) {
        if (!$(e.target).is("li")) {
          return;
        }
    
        var row = $(this).data("row");
        data[row].priority = $(e.target).attr("data");
        grid.updateRow(row);
      });
    </script>
    </body>
    </html>
  • 相关阅读:
    js中父窗口获得模态窗口的返回值
    Jquery获取控件值实例(转载)
    各种类库网址学习
    IIS启动网站时, 提示: “另一个程序正在使用此文件,进程无法访问”
    查看端口占用情况
    顽固的换行问题
    mac上共享android手机屏幕软件
    关于软键盘弹出的问题
    mac搭建android studio开发环境
    C语言位域和大小端
  • 原文地址:https://www.cnblogs.com/wt869054461/p/3948594.html
Copyright © 2011-2022 走看看