如何防止文档正文上的点击事件(可能是Cordova中的错误?)

Mar*_*sce 11 javascript mobile jquery android cordova

我是初学者,正在尝试使用Kinetic Js和"phonegap build"来开发手机游戏.我遇到了一个我不知道如何解决的问题.我做了一些测试:

  1. 我只是将此代码粘贴到我的index.html中,并将代码发送到phonegap构建,该构建从html代码创建了apk文件.该应用程序工作得很好,但如果你玩一点点你可能会看到一个不受欢迎的行为:整个"阶段"可以通过触摸点击,当它发生时(实际上不是故意这样做,但它发生)你听到Android操作系统的标准咔嗒声,你会看到整个区域突出显示一秒钟.就像你在浏览器中并点击链接一样.

  2. 我编译(带有phonegap版本)这里链接的指南针模拟器,它可以工作但是当你点击指南针的图片时,你会触发点击声.这是一种不受欢迎的效果,如果您在浏览器/模拟器上运行它,则不会出现这种效果.

  3. 我只是在身体上放了一些png图像,避免画布和KineticJs.我也没有添加任何脚本.在这种情况下,点击时没有点击事件.但如果我补充一下

    <script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
    <script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script>
    
    Run Code Online (Sandbox Code Playgroud)

    (即使没有添加任何脚本)然后再次点击可以产生点击事件.如果我删除这两行中的任何一行,则click事件将消失.如果我添加

    <script src="http://d3lp1msu2r81bx.cloudfront.net/kjs/js/lib/kinetic-v4.5.4.min.js"></script>
    
    Run Code Online (Sandbox Code Playgroud)

    再一次,身体可以点击,产生高光和点击声音.(我还在谈论带有phonegap构建的已编译应用程序).

我试图替换<body><body onmousedown="return false;">,但没有帮助.我也尝试使用$("#object").click( function () {return false;})画布的div元素,图片和正文,也没有帮助.我寻找建议使锚点不可点击,看看它们是否可以应用,但我没有找到任何有用的东西.

有什么建议吗?

更新:另一个没有解决的尝试是:stage.off('tap click mousedown touchstart touchend dbltap');.

pro*_*qht 3

你试过这个吗?

stage.on('tap touchstart touchend', function() {
  return false;
});
Run Code Online (Sandbox Code Playgroud)

这也可能有帮助:

canvas {
  /*-webkit-tap-highlight-color: transparent; Some users reported this worked for them, although rgba(0,0,0,0); worked for the asker*/
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  outline: none;
}
Run Code Online (Sandbox Code Playgroud)

这是关于 webkit-touch-callout 的快速链接,我不确定它是否对您的情况有帮助... http://phonegap-tips.com/articles/essential-phonegap-css-webkit-touch-callout。 html

编辑:看来电话间隙的作者建议-webkit-tap-highlight-color: rgba(0, 0, 0, 0);阻止链接选择。来源:https://github.com/phonegap/phonegap-start/blob/master/www/css/index.css

  • 实际上,我似乎已经用 `* {-webkit-tap-highlight-color: rgba(0, 0, 0, 0);}` 解决了突出显示问题。太好了,但是点击声音仍然存在...... (2认同)