DojoToolkit不工作时SurfacePro上的触碰/敲击事件
我有以下代码(请参阅): 我的HTMLDojoToolkit不工作时SurfacePro上的触碰/敲击事件,dojo,dgrid,Dojo,Dgrid,我有以下代码(请参阅): 我的HTML <div id="myElement" style="padding: 20px; background: #abcdef;">tap me (only works with touch device)</div> 我想使用dgrid touch util检测一个点击事件(我的内容在dgrid中,示例被剥离到必要的元素)。我无法使用触摸。按,因为在表格中滚动时会触发元素的“单击” 我现在有了一个使用dojo/has“功能检测”的
<div id="myElement" style="padding: 20px; background: #abcdef;">tap me (only
works with touch device)</div>
我想使用dgrid touch util检测一个点击事件(我的内容在dgrid中,示例被剥离到必要的元素)。我无法使用触摸。按,因为在表格中滚动时会触发元素的“单击”
我现在有了一个使用dojo/has“功能检测”的工作(在我看来很难看)“解决方案”(在桌面、IPhone/Safari和SurfacePro上),如下所示:
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) {
...
}
});
我对这个解决方案不太满意。有人知道我首先做错了什么吗?是一个函数,很可能on
不会监听它。用“touchstart”
(链接中的函数)替换它会对您有所帮助吗?在Safari/IPhone上,这很好,所以我认为这不是问题所在。而且,touchstart
在SurfacePro上不起作用。
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) {
...
}
});