我有一个使用jquery工作的子导航 – 用户点击顶级列表项,例如“服务”,触发下拉列表。下拉菜单通过点击“服务”链接切换。我已经使它,所以用户可以点击屏幕上的任何地方,将下拉菜单切换到关闭状态。但是由于网站是响应我希望用户能够点击(触摸)屏幕上的任何地方关闭下拉列表,但我的问题是,它不工作的触摸设备。
我的代码设置为文档点击是:
$(document).click(function(event) { if ( $(".children").is(":visible")) { $("ul.children").slideUp('slow'); } });
我假设document.click可能不工作在触摸设备,如果不是,什么解决方法是有实现相同的效果吗?
谢谢
解决方法
要通过点击或触摸触发功能,您可以更改:
$(document).click( function () {
对此:
$(document).on('click touchstart',function () {
或这个:
$(document).on('click touch',function () {
触摸启动事件在元素被触摸时立即触发,触摸事件更像是“轻敲”,即表面上的单个接触。你应该真的尝试每一个,看看什么最适合你。在某些设备上,触摸可能有点难以触发(这可能是好的或坏的东西 – 它防止拖累被计数,但意外的小拖曳可能会导致它不被触发)。