Как предотвратить события щелчка на теле документа (возможно, ошибка в Кордове?)

Я новичок, пытающийся разработать игру для мобильных телефонов с помощью Kinetic Js и «buildgap build». Я испытываю проблему, которую я не знаю, как обращаться. Я сделал несколько тестов:

  1. Я просто ввел этот код здесь в свой index.html и отправил код в сборку phonegap, которая создала файл apk из html-кода. Приложение работает нормально, но если вы немного поиграете, вы можете увидеть нежелательное поведение: вся «сцена» может быть нажата прикосновением и когда это произойдет (на самом деле это нелегко сделать это специально, но это происходит) Услышите стандартный звук щелчка ОС 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> 

    (Даже без добавления какого-либо скрипта), то снова нажмите «Добавить», чтобы создать событие click. Если я удалю кого-нибудь из двух строк, событие click исчезнет. Также, если я добавлю

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

    Снова тело можно щелкнуть, производя основные моменты и щелкая звук. (Я все еще говорю о скомпилированном приложении с сборкой phonegap).

Я попытался заменить <body> на <body onmousedown="return false;"> но не помог. Я также попытался с $("#object").click( function () {return false;}) с элементом div холста, рисунка и тела тоже не помог. Я искал советы, чтобы сделать якоря не кликабельными, чтобы увидеть, могут ли они применяться, но я не нашел ничего полезного.

Любое предложение?

Обновление: еще одна попытка, которая не решила: stage.off('tap click mousedown touchstart touchend dbltap'); ,

Solutions Collecting From Web of "Как предотвратить события щелчка на теле документа (возможно, ошибка в Кордове?)"

Вы пробовали это?

 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

EDIT: Кажется, автор телефонного разрыва предлагает -webkit-tap-highlight-color: rgba(0, 0, 0, 0); Для предотвращения выбора ссылок. Источник здесь: https://github.com/phonegap/phonegap-start/blob/master/www/css/index.css

Чтобы отключить нажатие на тег привязки, вы можете просто использовать некоторые трюки css, например, у вас есть якорный тег с классом «notclickable», затем добавьте css,

 .notclickable { pointer-events: none; cursor: default; opacity:0.7; } 

Теперь вы можете отключить привязку, добавив этот класс

Или вы можете попробовать это, чтобы предотвратить щелчок,

 $('.notclickable').live('click', function(event){ event.preventDefault(); }); 

Надеюсь это поможет.