将 jquery 悬停事件绑定到移动点击事件



我在网站上的很多不同地方都有很多悬停事件。具体来说,它们都是mouseentermouseleave功能。现在,当在移动设备上查看单击事件或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事件会同时触发mouseenterclick。我该如何解决这个问题,以便一个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();
}

最新更新