如何在移动设备中使用 ondblClickRow 事件

How to use ondblClickRow event in mobile devices

免费的 jqgrid 包含 ondblClickRow 用于打开订单详细信息的事件处理程序。

如果 Google Chrome 设置为 Samsung Galaxy S4 仿真模式,则此事件不会归档。

要复制,打开

http://jsfiddle.net/amorris/ynw3c/

in Chrome 在 Samsung Galaxy S4 仿真模式下双击 jqgrid 行。 不出现警告框。 单击可正确选择行。

如何解决这个问题?
应该为此将单独的打开按钮添加到每个 jqgrid 行,或者是否有更好的方法允许打开详细信息,例如双击桌面中的行。

使用 4.9.2-post

在我看来,您需要将 touchstart 句柄绑定到网格并检测在前一个 touchstart 事件后的短时间内触发的 touchstart。例如,您可以使用 jQuery.data 保存上一个 touchstart 事件的时间。

我将您的演示修改为 http://jsfiddle.net/OlegKi/yNw3C/12120/,它使用以下代码

$("#grid").bind("touchstart", function (e) {
    var $this = $(this), now = new Date().getTime(),
        lastTouchTime = $this.data("lastTouchTime") || now + 1,
        timeInterval = now - lastTouchTime;
    //console.log(e);
    // the next line use constant 500 as 0.5 sec timeout between taps
    if (timeInterval < 500 && timeInterval > 0) {
        var $tr = $(e.target).closest("tr.jqgrow");
        if ($tr.length > 0) {
            //console.log($tr[0]);
            alert("double touchstart on rowid=" + $tr.attr("id"));
        } else {
            alert("double touchstart");
        }
    }
    $this.data("lastTouchTime", now);
});

在 Samsung Galaxy S4 仿真模式下,代码至少在 Chrome 中显示警报