2014-11-14 124 views
1

我在一个站点上的很多不同地方有很多悬停事件。具体而言,它们都是mouseentermouseleave functions.Now在移动设备上单击事件或touch事件(我认为他们被称为)触发mouseenter,但不是mouseleave,我如何触发功能的其他部分?这是问题的一部分。将jquery悬停事件绑定到移动点击事件

这里是一个典型的功能的模样:

function hover() { 
    $('#my_div).mouseenter(fucntion(){ 
    $('my_selector#1',$this).show(); 
    }).mouseleave(function(){ 
    $('my_selector#1',$this).hide(); 
    }); 
} 
hover(); 

另一部分是,在一些地方有mouse-enter-leave事件也有click事件。 (例如:mouseenter一个按钮显示[上面的例子],然后你可以点击)。 在移动设备上查看时,touch事件同时触发了mouseenterclick。如何解决此问题以便一个touch触发mouseenter,然后触发click?点击

例如:

function click() { 
    $('#my_div my_selector#1').click(function(){ 
    //something happens 
    }); 
click(); 

回答

2

我会说,对于第一种情况,有没有“伟大”的解决方案。 如果悬停内容阻挡其他重要内容,则应该改变移动设计以使悬停工作更好。

对于第二种情况,您可以使用元素可见性切换,点击应该做些什么。

例如:

function hover() { 
    if($('element').is(':visiblie')){ 
     click(); 
    }else{ 
     $('element').show(); 
    } 
} 

function click(){ 
    doStuff(); 
} 
+0

给予好评为不是暗示剂检测,并提供一个可行的解决方案:) – 2014-11-14 14:54:31