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

时间:2015-11-08 15:53:58

标签: android jquery jqgrid touch free-jqgrid

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

如果将Google Chrome置于三星Galaxy S4仿真模式,则此事件不会存档。

要重现,请打开

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

在三星Galaxy S4仿真模式的Chrome中,双击jqgrid行。 警报框不会出现。 单击即可正确选择行。

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

使用4.9.2-post

1 个答案:

答案 0 :(得分:3)

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

我将您的演示修改为使用以下代码的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);
});

代码至少在Chrome中以三星Galaxy S4仿真模式显示警告