我在网站上的很多不同地方都有很多悬停事件。具体来说,它们都是mouseenter
和mouseleave
功能。现在,当在移动设备上查看单击事件或touch
事件(我认为它们被调用)触发mouseenter
,而不是mouseleave
,我如何触发函数的另一部分?这是问题的一部分。
下面是一个典型的函数的样子:
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
事件会同时触发mouseenter
和click
。我该如何解决这个问题,以便一个touch
触发mouseenter
然后touch
触发click
点击示例:
function click() {
$('#my_div my_selector#1').click(function(){
//something happens
});
click();
说,对于第一种情况,没有"伟大"的解决方案。如果悬停内容阻止了其他重要内容,则应更改移动设计以使悬停更好地工作。
对于第二种情况,您可以使用元素可见性来切换单击应该做什么。
例如:
function hover() {
if($('element').is(':visiblie')){
click();
}else{
$('element').show();
}
}
function click(){
doStuff();
}