我有以下代码(请参阅https://jsfiddle.net/1acx22tx/1/):
我的HTML
<div id="myElement" style="padding: 20px; background: #abcdef;">tap me (only
works with touch device)</div>
我的(缩短的)脚本
require({...}, ["dojo/on", "dgrid/util/touch"], function(on, touchUtil){
on(document.getElementById("myElement"), touchUtil.tap, function(ev) {
alert("TAP WORKS!");
});
});
我想使用dgrid touch util检测TAP事件(我在dgrid中有我的内容,该示例被剥离到必要的元素)。我不能使用touch.press
因为这会在表格中滚动时触发元素的“点击”。
我现在有一个工作(在我看来很难看)“解决方案”(在桌面,IPhone / Safari和SurfacePro上)使用dojo /具有如下所示的“特征检测”:
require({...}, ["dojo/on", "dojo/has", "dojo/touch", "dgrid/util/touch"], function(on, has, touch, touchUtil){
if (has("touch")) {
if (has("safari")) {
clickEvent = touchUtil.selector(".dgrid-row-table", touchUtil.tap);
} else {
clickEvent = touch.release;
}
} else {
clickEvent = ".dgrid-row-table:click";
}
on(document.getElementById("myDgrid"), clickEvent, function(event) {
...
}
});
我对这个解决方案不太满意。有谁知道,我首先做错了什么?