Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery单击后退无悬停ipad_Jquery_Ipad_Click_Hover - Fatal编程技术网

jQuery单击后退无悬停ipad

jQuery单击后退无悬停ipad,jquery,ipad,click,hover,Jquery,Ipad,Click,Hover,我希望在将鼠标悬停在某个对象上(并取消悬停)时调用一个函数。不过,我也希望ipad(等)用户能够访问它,因为他们没有鼠标悬停。因此,我希望单击回退成为可能。我如何做到这一点?请注意,如果悬停有效,我不希望人们能够点击它。这是我到目前为止得到的,非常接近: var collapsed=1, noHover=false; $('#deeper').hover(function() {deeper();}); $('#deeper').click(function() {if (collapsed |

我希望在将鼠标悬停在某个对象上(并取消悬停)时调用一个函数。不过,我也希望ipad(等)用户能够访问它,因为他们没有鼠标悬停。因此,我希望单击回退成为可能。我如何做到这一点?请注意,如果悬停有效,我不希望人们能够点击它。这是我到目前为止得到的,非常接近:

var collapsed=1, noHover=false;
$('#deeper').hover(function() {deeper();});
$('#deeper').click(function() {if (collapsed || noHover) {
  deeper();
  noHover=true;
}});
function deeper() {
  if (collapsed == 1) {
    collapsed = 0;
    $(this).children().show();
  } else {
    collapsed = 1;
    $(this).children().hide();
  }
}
但是,这会失败-如果在页面加载时,您将鼠标悬停在#较深的位置,并且在移动鼠标之前单击鼠标(鼠标移动似乎是.hover to fire所必需的),则noHover变为true,使单击和悬停成为可能


一定有更好的办法吗?谢谢

点击时,iPad会触发触摸事件。一个选项是使用这些选项而不是单击,并且不传播到单击事件(或使用全局变量跟踪单击/触摸状态)

触摸的工作原理很像点击。有关更多信息,请参阅本文:

您可能想看看jQuery,它将触摸和鼠标事件(可触摸)和悬停事件(可悬停)统一到不同的平台上,如台式机和带有触摸屏的移动设备上。

谢谢这些。实际上,通过向.hover事件添加更多内容,我解决了自己的问题:$('#deeper').hover(function(){noHover=false;vbg=1;deeperEd();},function(){noHover=false;vbg=0;deeperEd();});