从移动设备发出错误的jQuery事件

时间:2011-03-29 23:12:50

标签: jquery mobile

我在移动设备上遇到以下div,link和jQuery的问题:

<div id="div1" style="width:300px;height:100px;">
    <a href="#" id="link1">Link</a>
</div>

<script type="text/javascript">
$('#link1').click(function() {
    alert('Clicked link');
});  

$('#div1').mouseenter(function(){
    alert('Entered div');
});  
</script>

如果您将鼠标悬停在div1上,则会通过PC警告“已输入的div”。单击link1时,它会提示“Clicked link”。完美。

但是,从移动设备悬停不起作用。哪个没关系,但是当用户点击link1时,它会首先警告“已输入的div”。如果他们再次点击,则会提示“点击链接”。

如果用户第一次从移动设备点击link1而不牺牲其在桌面上的工作方式,如何让它提醒“点击链接”?

3 个答案:

答案 0 :(得分:1)

欢迎使用移动设备:)

如果您在启用触摸的设备上运行,并且未绑定您的mouseenter事件,或者直接绑定到触摸事件并阻止它们转换为点击和鼠标,则需要进行功能检测。

答案 1 :(得分:0)

你可以尝试如下,

如果你说返回false,它可以阻止传播,但我不是100%确定移动设备..只是试一试

$('#link1').click(function() {
    alert('Clicked link');
    return false;
});

答案 2 :(得分:0)

我遇到了同样的问题。我刚刚实现了以下内容......

var is_ios = navigator.userAgent.toLowerCase().match(/(iphone|ipod|ipad)/);

if(!is_ios){ 

  // bind my hover behaviours here

}
如果您想为iphone / ipad / ipod专门做一些事情,请

添加else。在我的情况下,我不需要。