当用户双击jqgrid中的任何行时,阻止beforeSelectRow事件

时间:2012-04-16 14:23:13

标签: events jqgrid event-handling

我在jqgrid中使用单元格编辑,为此,我使用了许多不同的jqgrid事件,如下所述... 1)beforeSelectRow,2)beforeEditCell,3)afterEditCell,4)onCellSelect,5)ondblClickRow等...

现在,当我双击任何一行时,beforeselectRow代码首先执行..我想阻止......但是怎么做?

一些示例代码如下: -

ondblClickRow: function(id,irow,icol,e)
{
  ........
},
beforeSelectRow : function(rowid, e) 
{   

    if(rowid==lastSelected)
    {
        $sampleDialog.dialog('open');
    }
}

1 个答案:

答案 0 :(得分:1)

不同的网络浏览器以稍微不同的方式处理双击事件。所以通常你不能在'dblclick'之前阻止'click'事件。回调beforeSelectRow将在jqGrid代码中定义的click enevt处理程序内部调用。在dblclick事件处理程序的jQuery文档中,您可以阅读以下内容(请参阅here):

  

不建议将处理程序绑定到clickdblclick   同一元素的事件。触发的事件顺序各不相同   从浏览器到浏览器,有些人之前收到了两个click事件   dblclick和其他人只有一个。双击灵敏度(最大值   检测为双击的点击之间的时间可能会有所不同   操作系统和浏览器,通常是用户可配置的。

您目前所做的只是不建议如何绑定'click'和'dblclick'句柄。

您没有描述可能存在于ondblClickRow回调实现内部的原始问题。唯一的解决方案是检查程序的重组,使beforeSelectRowondblClickRow回调中的操作之间不会发生冲突。