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

标签 javascript android jquery mobile cordova

我是一名尝试使用 Kinetic Js 和“phonegap build”开发手机游戏的初学者。我遇到了一个我不知道如何解决的问题。 我做了一些测试:

  1. 我刚刚粘贴了this code here进入我的 index.html 并将代码发送到 phonegap build它从 html 代码创建了 apk 文件。 该应用程序工作得很好,但如果你玩一点,你可能会看到一个不受欢迎的行为:整个“舞台”可以通过触摸点击,当它发生时(实际上并不容易故意这样做,但它发生了)你听到 Android 操作系统的标准点击声,您会看到整个区域突出显示一秒钟。就像您在浏览器中单击链接一样。

  2. 我编译(使用 phonegap 构建)链接的指南针模拟器 here ,它可以工作,但是当您点击指南针的图片时,您会触发咔嗒声。如果您在浏览器/模拟器上运行它,这是一种不希望出现的效果。

  3. 我只是将一些 png 图像放在 body 中,避免使用 canvas 和 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>
    

    (即使 没有 添加任何脚本)然后再次点击可以产生点击事件。如果我删除两行中的任何一行,则单击事件就会消失。另外,如果我添加

    <script src="http://d3lp1msu2r81bx.cloudfront.net/kjs/js/lib/kinetic-v4.5.4.min.js"></script>
    

    再次, body 是可点击的,产生亮点和点击声音。 (我仍然在谈论使用 phonegap build 编译的应用程序)。

我尝试替换 <body><body onmousedown="return false;">但没有帮助。我也试过 $("#object").click( function () {return false;})使用 Canvas 的 div 元素、图片和正文,也无济于事。我寻找使 anchor 不可点击的建议,以查看是否可以应用它们,但我没有找到任何有用的信息。

有什么建议吗?

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

最佳答案

你试过吗?

stage.on('tap touchstart touchend', function() {
  return false;
});

这也可能有帮助:

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;
}

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

编辑: phone gap 的作者似乎建议使用 -webkit-tap-highlight-color: rgba(0, 0, 0, 0); 来防止链接选择。来源:https://github.com/phonegap/phonegap-start/blob/master/www/css/index.css

关于javascript - 如何防止文档主体上的点击事件(可能是 Cordova 中的错误?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17493032/

相关文章:

Javascript Namespacing,语法错误在哪里?

javascript - 通过引用对象和键作为字符串来获取数组/对象值

android - 如何在 Android 的不同应用程序中使用 Broadcast Receiver?

android - 如何在 Android string.xml 中放置特殊的贸易字符

javascript - 对象不支持属性或方法 'text'

取决于窗口高度的 jQuery 字体大小编辑

javascript - 网站在 IE 中崩溃,可能是内存泄漏?

javascript - 选择添加按钮时需要显示额外的文本输入,还需要删除字段

android - 监听器的对象标识

javascript - 如何将类添加到下两个元素并从当前两个元素中删除?