1

我在 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');
    }
}
4

1 回答 1

1

不同的 Web 浏览器处理双击事件的方式略有不同。所以一般来说你不能在'dblclick'之前阻止'click'事件。回调beforeSelectRow将在clickjqGrid 代码内部定义的 enevt 处理程序内部调用。在dblclick事件处理程序的 jQuery 文档中,您可以阅读以下内容(参见此处):

不建议将处理程序绑定到同一元素的 theclickdblclick events。触发的事件顺序因浏览器而异,有的在一个click之前接收两个事件,dblclick而另一些则只接收一个。双击灵敏度(被检测为双击的两次单击之间的最长时间)可能因操作系统和浏览器而异,并且通常是用户可配置的。

您目前所做的只是不推荐绑定“click”“dblclick”句柄的方法。

您没有描述您遇到的原始问题,这可能在ondblClickRow回调实现的某个地方。beforeSelectRow唯一的解决方案是检查程序的重组,以确保内部操作和ondblClickRow回调之间没有冲突。

于 2012-04-16T15:16:47.823 回答