在kendo网格中获取click事件
我正在尝试获取Kendo Grid的点击事件,这样我就可以将内容绑定到shift和ctrl click。 我无法使用固有的多选Kendo提供,因为它不支持拖放。 当我在dataBound事件之后创建一个函数时,我的函数在点击时被调用,但它不是典型的点击事件。
var onDataBound = function () { selectItem.apply(this); } grid.dataBound = onDataBound; var selectItem.apply = function (e) { console.log(e); }
有什么想法吗? 提前致谢。
初始化Grid
之后,您应该将处理程序绑定到click事件。
例:
$("#grid").on("click", "table", function(e) { console.log("clicked", e.ctrlKey, e.altKey, e.shiftKey); });
您可以使用:
-
e.ctrlKey
用于检测是否按下了ctrl 。 -
e.altKey
用于检测alt是否被按下。 -
e.shiftKey
用于检测是否按下了shift 。
如果要仅检测表格主体中的单击,可以将"table"
替换为"tbody"
或"td"
。
Jsfiddle的例子 。
声明网格时使用dataBound
事件:
grid = $("#grid").kendoGrid({ ... ,dataBound=onDataBound }); var onDataBound = function(e) { $("#grid").find("tr").click(selectItem.apply); }; var selectItem.apply = function (e) { var dataItem = $("#grid").data("kendoGrid").dataItem(this); if(e.ctrlKey) alert('Ctrl + click on ' + dataItem.column1); }
dataItem
是您可以传递的绑定数据项。