如何在移动设备中使用 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 中显示警报
免费的 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 中显示警报