我这样做,它工作正常的办公桌上:
$(document).on("click", function(){
$(".dropdown-toggle").removeClass("open");
});
但在iPad上,它不工作,我的下拉保持开放
我这样做,它工作正常的办公桌上:
$(document).on("click", function(){
$(".dropdown-toggle").removeClass("open");
});
但在iPad上,它不工作,我的下拉保持开放
您应该使用touchstart
和touchend
带触摸设备的事件:
$(document).on("click touchend", function(){
$(".dropdown-toggle").removeClass("open");
});
这个答案涉及到导航栏菜单,而不是一般的下拉列表中 ,但我碰到这个在寻找的答案,我自己类似的问题来了(接近汉堡包菜单攻外时),所以认为我会张贴别人的替代方案,如接受的答案不与汉堡的子菜单工作(攻打开子菜单将关闭汉堡菜单)。
这个答案是基于公认的答案和这个答案,以及对NickGreen的评论这个答案。
$('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');
}
}
});
我用这个片段,如果我不想关闭任何下拉页面上,当用户点击里面。
$(document).on('click touchend', function(e) {
if ($(e.target).closest('.open').length === 0) {
$('.dropdown-toggle').parent().removeClass('open');
}
});