首页 > 代码库 > SlickGrid example 7:鼠标事件
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="width: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", width: 200, cssClass: "cell-title", editor: Slick.Editors.Text}, {id: "priority", name: "Priority", field: "priority", width: 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>
SlickGrid example 7:鼠标事件
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。