我发现一个问题,当我“点击”或“点击”某个元素时,它会在我最近的项目中触发两次。例如:
......
<div id='target'></div>
......
<script>
$('#target').click(function(){alert('touched!')});
</script>
然后它会提醒“触摸”两次!!!!
我想如果我使用手势库我可以解决它,所以我尝试Hammer.js.但似乎问题仍然无法解决。我对此感到困惑,真的希望有人可以给我一些建议.Thanks !!!
答案 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!')});
});