【问题标题】:Bind jquery hover events to mobile click events将 jquery 悬停事件绑定到移动点击事件
【发布时间】:2014-11-14 21:20:10
【问题描述】:

我在网站的许多不同位置都有很多悬停事件。具体来说,它们都是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();

【问题讨论】:

    标签: jquery events onclick mouseevent


    【解决方案1】:

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

    对于第二种情况,您可以使用元素可见性来切换点击应该执行的操作。

    例如:

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

    【讨论】:

    • 赞成不建议代理检测并提供可行的解决方案:)
    猜你喜欢
    • 1970-01-01
    • 2014-01-07
    • 1970-01-01
    • 2012-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-24
    • 1970-01-01
    相关资源
    最近更新 更多