SurfacePro上的触摸/点击事件,DojoToolkit无法正常工作

时间:2017-05-10 09:24:42

标签: dojo dgrid

我有以下代码(请参阅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) {
        ...
    }
});

我对这个解决方案不太满意。有谁知道,我首先做错了什么?

0 个答案:

没有答案