2017-09-22 110 views
0

我试图展示用于移动设备的侧栏。当我点击一个元素时,我想用子菜单打开那个li标签。在浏览器中它工作正常,但在移动设备上它不工作。jQuery的click事件不工作在移动设备上

我还试图用“touchstart”,而不是点击。这里的问题是,当我触摸元素并开始滚动时,子菜单将打开。我只想在点击/点击时打开它。

谁能帮我解决这个问题?

HTML:

<li> 
    <a class="filter-attribute"><i class="fa fa-chevron-down pull-right"></i>head1</a> 
     <ul class="child"> 
     <li class="filter-item"><input type="checkbox" name="attributeItems[]">sub1</li> 
     </ul> 
</li> 

的jQuery:

$(document).on("click", ".filter-attribute", function() { 
$(this).next('.child').fadeToggle("slow"); 
}); 
+0

你可以用' touchstart'或'mousedown'移动设备 –

+0

当我你mousedown,它是开什么 – jol123

回答

0

您可以使用mousedown这一点。检查更新的摘要如下

$(document).on("mousedown", ".filter-attribute", function() { 
 
    $(this).siblings('.child').fadeToggle("slow"); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<ul> 
 
<li> 
 
    <a class="filter-attribute"><i class="fa fa-chevron-down pull-right"></i>head1</a> 
 
     <ul class="child"> 
 
     <li class="filter-item"><input type="checkbox" name="attributeItems[]">sub1</li> 
 
     </ul> 
 
</li> 
 
</ul>

+0

有没有可能是因为我的侧边栏后面的内容滚动它不是为我工作? – jol123

0

尝试另一种方式来做到,使用touchstart事件,它适用于移动设备:

$(document).on("click touchstart", ".filter-attribute", function (e) { 
 
    $(this).closest("li").find('.filter-item').fadeToggle("slow") 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<li> 
 
    <a class="filter-attribute"><i class="fa fa-chevron-down pull-right"></i>head1</a> 
 
     <ul class="child"> 
 
     <li class="filter-item"><input type="checkbox" name="attributeItems[]">sub1</li> 
 
     </ul> 
 
</li>

+0

这不适合我 – jol123

+0

工作@ jol123检查我更新的答案。 – SilverSurfer

+0

如果我用我上面的代码中,有touchstart这不打开我的侧边栏 – jol123

相关问题