免费的jqgrid包含ondblClickRow
事件处理程序,用于打开订单详细信息。
如果将Google Chrome置于三星Galaxy S4仿真模式,则此事件不会存档。
要重现,请打开
http://jsfiddle.net/amorris/ynw3c/
在三星Galaxy S4仿真模式的Chrome中,双击jqgrid行。 警报框不会出现。 单击即可正确选择行。
如何解决此问题?
应该为每个jqgrid行添加单独的打开按钮,或者是否有更好的方法来允许打开详细信息,例如在桌面上双击行。
使用4.9.2-post
答案 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仿真模式显示警告