【发布时间】:2014-06-03 18:18:08
【问题描述】:
我正在尝试使网络应用程序在平板电脑上运行。我实际上并不需要来自平板电脑的客人,只需要 mousedown mouseup 和 mousemove 等价物。
但是,触摸事件似乎会干扰,并且似乎无法提供我需要的坐标数据。
我真正想要的是 clientX、clientY 或类似的等价物,但这些触摸事件在 iPad 上肯定没有。并且鼠标事件似乎被触摸事件吃掉了。事件数据中似乎也没有我可以利用的其他字段。
我不想添加 jq mobile 或 ui 来增加代码。好像
建议?
我写了这个小提琴来捕捉不同类型的事件。它只是抓取事件并打印事件对象的内容,跳过一堆公共字段:
http://jsfiddle.net/fraserorr/DBe6A/1/embedded/result/
代码如下:
HTML:
<div id='abc'></div>
<div id="log"></div>
CSS:
#abc { width: 200px; height: 200px; background-color: blue;}
JS:
function f(e) {
for(var i in e) {
if(i == "isImmediatePropagationStopped") continue;
if(i == "isPropagationStopped") continue;
if(i== "stopImmediatePropagation") continue;
if(i == "stopPropagation") continue;
if(i == "preventDefault") continue;
if(i == "handleObj") continue;
if(i == "data") continue;
if(i == "delegateTarget") continue;
if(i == "attrChange") continue;
if(i == "attrName") continue;
if(i == "relatedNode") continue;
if(i == "srcElement") continue;
if(i == "altKey") continue;
if(i == "bubbles") continue;
if(i == "cancelable") continue;
if(i == "ctrlKey") continue;
if(i == "currentTarget") continue;
if(i == "eventPhase") continue;
if(i == "metaKey") continue;
if(i == "relatedTarget") continue;
if(i == "shiftKey") continue;
if(i == "target") continue;
if(i == "view") continue;
if(i == "which") continue;
if(i == "button") continue;
if(i == "buttons") continue;
//if(i == "clientX") continue;
if(i == "clientY") continue;
if(i == "fromElement") continue;
//if(i == "offsetX") continue;
if(i == "offsetY") continue;
//if(i == "pageX") continue;
if(i == "pageY") continue;
//if(i == "screenX") continue;
if(i == "screenY") continue;
if(i == "toElement") continue;
if(i.substr(0, 6) == "jQuery") continue;
if(i == "timeStamp") continue;
if(i == "isDefaultPrevented") continue;
//if(i == "type") continue;
if(i == "originalEvent") continue;
$("#log").prepend(i + ": " + e[i] + "<br/>");
}
}
$(document).ready(function() {
//$("#abc").on("mousemove", f);
$("#abc").on("mousedown", f);
$("#abc").on("touchmove", f);
$("#abc").on("touchstart", f);
});
【问题讨论】:
标签: javascript jquery touch