鼠标事件在移动设备上不起作用
Mouse events not working in mobile
我创建了这个 360 panorama image,它在桌面上运行良好,但在手机上鼠标事件不起作用。我该如何为移动设备修复此问题?
// 听众
document.addEventListener("mousedown", onDocumentMouseDown, false);
document.addEventListener("mousemove", onDocumentMouseMove, false);
document.addEventListener("mouseup", onDocumentMouseUp, false);
我将事件更改为
document.addEventListener("touchstart", onDocumentMouseDown, false);
document.addEventListener("touchmove", onDocumentMouseMove, false);
document.addEventListener("touchend", onDocumentMouseUp, false);
但这不适用于移动设备。
对于手机,请像这样尝试。你必须使用 deviceready 函数来启动。
document.addEventListener("deviceready", init, false);
function init() {
document.querySelector("#yourbuttonId").addEventListener("touchstart", onDocumentMouseDown, false)
}
此事件对于任何应用程序都是必不可少的。它表明 Cordova 的设备 API 已加载并准备好访问。
Cordova 由两个代码库组成:本机和 JavaScript。加载本机代码时,会显示自定义加载图像。但是,JavaScript 仅在 DOM 加载后加载。这意味着网络应用程序可能会在相应的本机代码可用之前调用 Cordova JavaScript 函数。
Cordova 完全加载后将触发 deviceready 事件。一旦事件触发,您就可以安全地调用 Cordova API。一旦 HTML 文档的 DOM 已加载,应用程序通常会使用 document.addEventListener 附加事件侦听器。
设备就绪事件的行为与其他事件略有不同。在 deviceready 事件触发后注册的任何事件处理程序都会立即调用其回调函数。
http://docs.phonegap.com/en/4.0.0/cordova_events_events.md.html#deviceready
阅读此 link。
谢谢。
我找到了答案。由于触摸 event.clientX 和 event.clientY 不工作,我已将其更改为 event.touches[0].clientX 和 event.touches[0].clientY,它修复了触摸事件问题。
我创建了这个 360 panorama image,它在桌面上运行良好,但在手机上鼠标事件不起作用。我该如何为移动设备修复此问题?
// 听众
document.addEventListener("mousedown", onDocumentMouseDown, false);
document.addEventListener("mousemove", onDocumentMouseMove, false);
document.addEventListener("mouseup", onDocumentMouseUp, false);
我将事件更改为
document.addEventListener("touchstart", onDocumentMouseDown, false);
document.addEventListener("touchmove", onDocumentMouseMove, false);
document.addEventListener("touchend", onDocumentMouseUp, false);
但这不适用于移动设备。
对于手机,请像这样尝试。你必须使用 deviceready 函数来启动。
document.addEventListener("deviceready", init, false);
function init() {
document.querySelector("#yourbuttonId").addEventListener("touchstart", onDocumentMouseDown, false)
}
此事件对于任何应用程序都是必不可少的。它表明 Cordova 的设备 API 已加载并准备好访问。
Cordova 由两个代码库组成:本机和 JavaScript。加载本机代码时,会显示自定义加载图像。但是,JavaScript 仅在 DOM 加载后加载。这意味着网络应用程序可能会在相应的本机代码可用之前调用 Cordova JavaScript 函数。
Cordova 完全加载后将触发 deviceready 事件。一旦事件触发,您就可以安全地调用 Cordova API。一旦 HTML 文档的 DOM 已加载,应用程序通常会使用 document.addEventListener 附加事件侦听器。
设备就绪事件的行为与其他事件略有不同。在 deviceready 事件触发后注册的任何事件处理程序都会立即调用其回调函数。
http://docs.phonegap.com/en/4.0.0/cordova_events_events.md.html#deviceready
阅读此 link。
谢谢。
我找到了答案。由于触摸 event.clientX 和 event.clientY 不工作,我已将其更改为 event.touches[0].clientX 和 event.touches[0].clientY,它修复了触摸事件问题。