在Phonegap中点击事件

时间:2013-12-16 06:50:15

标签: javascript android jquery cordova hybrid-mobile-app

我发现一个问题,当我“点击”或“点击”某个元素时,它会在我最近的项目中触发两次。例如:

......

<div id='target'></div>   
......


<script>

  $('#target').click(function(){alert('touched!')});

</script>

然后它会提醒“触摸”两次!!!!

我想如果我使用手势库我可以解决它,所以我尝试Hammer.js.但似乎问题仍然无法解决。我对此感到困惑,真的希望有人可以给我一些建议.Thanks !!!

5 个答案:

答案 0 :(得分:1)

试试这个

   <script>
    $(document).ready(function(){
      $('#target').click(function(){alert('touched!')});
    });
    </script>

SEEE Js Fillde

答案 1 :(得分:1)

试试这个

$(document).ready(function(){
      $('#target').unbind('click');
      $('#target').bind('click',function(event){
          alert('touched!')
      });
});

有时,事件触发多次发生,因为它被绑定多次。在unbind

之前尝试bind

答案 2 :(得分:1)

当使用phonegap进行项目时,我遇到了类似的问题(我认为问题主要出在android jelly bean设备上)。所以这就是我所做的:

var isEvent = false;

$(document).ready(function(){

 $(element).click(function(){
    if(!isEvent){
      isEvent = true;
      doSomething();
    }
    setTimeout(function(){isEvent=false;},50); // time in ms should be set according to your needs
 });
});

当时这是100%工作的唯一解决方案

答案 3 :(得分:1)

在现代浏览器中,您只需使用touchstart和touchend

即可
document.addEventListener('touchstart', function(){
  alert('touch started at ' + Date.now() );
}, false);
document.addEventListener('touchend', function(){
  alert( 'touch ended at ' + Date.now() );
});

您可以通过设置触摸设备来测试Chrome开发者工具中的触摸事件。不知道其他浏览器是否也支持这个

答案 4 :(得分:0)

试试这个:

$(document).on('pageinit', 'page_id', function(){
     $('#target').click(function(){alert('touched!')});
});