我这样做,桌面上的工作正常:
$(document).on("click", function(){
$(".dropdown-toggle").removeClass("open");
});
但在iPad上,它不起作用,我的下拉列表仍然打开
答案 0 :(得分:2)
您应该使用触摸设备touchstart
和touchend
事件:
$(document).on("click touchend", function(){
$(".dropdown-toggle").removeClass("open");
});
答案 1 :(得分:2)
这个答案与 navbar 菜单有关,而不是一般下拉菜单,但我在寻找自己类似问题的答案时遇到了这个问题(点击时关闭汉堡包菜单)因为我接受的答案不适用于汉堡包子菜单(点击打开子菜单会关闭,所以我认为我会为其他人发布替代解决方案汉堡包菜单。)
此答案基于已接受的答案和this答案,以及NickGreen对this答案的评论。
$('html').on('click, touchend', function (e) {
// Close hamburger menu when tapping outside
if ($(e.target).closest('.navbar').length == 0) {
var opened = $('.navbar-collapse').hasClass('collapse in');
if (opened === true) {
$('.navbar-collapse').collapse('hide');
}
}
});
答案 2 :(得分:0)
如果我不想在用户点击页面时关闭页面上的任何下拉列表,我会使用此代码段。
$(document).on('click touchend', function(e) {
if ($(e.target).closest('.open').length === 0) {
$('.dropdown-toggle').parent().removeClass('open');
}
});