javascript - jqGrid 中 onCellSelect 函数的完全相反是什么?

标签 javascript jquery jqgrid

我的代码-

 onCellSelect: function(rowid,iRow,iCol,e)
  {
        jQuery("#createrule").click(function(){
        hidePopup();
        showPopUp6();
      });     
   onCellSelect:

},

jqGrid 中 onCellSelect 函数的完全逆向是什么?

最佳答案

如果用户在网格中单击,您不应该每次都注册新的 click 事件处理程序。

jqGrid 在创建网格期间注册了一个click 事件处理程序。因此,如果用户单击网格的某个单元格,您可以执行一些操作。参数 rowidiCol 帮助您识别哪个单元格被点击,e 参数(click 的事件对象事件)可以在需要时为您提供更多信息。 jqGrid 是开源项目。因此,您可以随时检查源代码以更好地了解 onCellSelect 的作用以及它将在何种上下文中被调用。看the lines代码。

只是一个例子 你可以定义下面的格式化程序

formatter: function (cellValue, options, rowObject) {
    return "<span class='myLink'>" + cellValue + "</span>";
}

在名为“myColumn”的列中定义以下使用 myLink 类的 CSS 规则

.myLink { text-decoration: underline; cursor: pointer; }

您将在列中有“链接”。

要检测用户是否点击了此类伪链接,您可以使用以下 onCellSelect 回调

onCellSelect: function (rowid, iRow, iCol, e) {
    var $self = $(this), colModel = $self.jqGrid("getGridParam", "colModel");
    if (colModel[iCol].name === "myColumn") { // test for the click in myColumn column
        alert("OK here we can do something");
    }
}

警报将显示在点击列中的任何地方,而不仅仅是在链接上。如果你只想检测点击链接,那么我们应该测试 e.tagret 这是用户点击的元素:

onCellSelect: function (rowid, iRow, iCol, e) {
    var $self = $(this), colModel = $self.jqGrid("getGridParam", "colModel");
    if (colModel[iCol].name === "myColumn" && $(e.tagret).hasClass("myLink")) {
        alert("OK, link is clicked and here we can do something");
    }
}

因此 onCellSelect 可用于处理网格每个单元格上的 click 事件。如果您需要另外抑制对网格的选择,那么您应该使用 beforeSelectRow 而不是 onCellSelect。参见 the answer例如。

关于javascript - jqGrid 中 onCellSelect 函数的完全相反是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26859269/

相关文章:

javascript - 在 jqGrid 中重新加载 dataurl 元素

javascript - Highchart 饼图基础

javascript - 如何让我的 Vue for 循环生成的按钮覆盖我的 div 的整个区域?

javascript - 单击按钮时填充 javascript 变量

JavaScript 动态变量名称

jQGrid删除时主键问题

javascript - node.js 获取被拒绝的 Promise 的构造位置

javascript 迭代和重新映射

.net - 目录设计

javascript - jqgrid:如何以编程方式序列化当前表单?