Выпадающее меню не работает на мобильных устройствах
самая последняя версия Twitter bootstrap (2.3.2), похоже, имеет проблемы с выпадающими меню на мобильных устройствах.
когда вы нажимаете на выпадающий пункт меню после открытия меню, меню просто закрывается, и никакая ссылка не нажимается. Вы можете увидеть это на их странице образца здесь:http://twitter.github.io/bootstrap/examples/hero.html
Я нашел проблему, опубликованную на их странице github, но не решение: https://github.com/twitter/bootstrap/issues/7927
кто-нибудь знает трюк, чтобы исправить это?
5 ответов
это сработало для меня:
$('.dropdown-toggle').click(function(e) {
e.preventDefault();
setTimeout($.proxy(function() {
if ('ontouchstart' in document.documentElement) {
$(this).siblings('.dropdown-backdrop').off().remove();
}
}, this), 0);
});
via robdodson на github
для меня это сработало, добавив к моим стилям:
.dropdown-backdrop {
z-index:0;
}
почти тот же ответ, что и Матиас, надеюсь, это поможет.
я исправил эту проблему.
мой код здесь
<li class="dropdown custom open"> <a href="#" class="dropdown-toggle" data-toggle="dropdown"> menu<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="#">Sub menu</a></li>
<li><a href="#">Sub menu2</a></li>
</ul>
</li>
добавить следующий стиль в CSS fie.
@media (max-width: 767px) {
.dropdown.custom:hover .dropdown-menu {
visibility: visible;
display:block;
border-radius:0;
}
}
посещение:http://www.s4auto.co.za/
ни один из обычных ответов, казалось, решить нашу проблему на Android. Мы попробовали принятый ответ здесь и несколько javascript-хаков: Bootstrap свернутые ссылки Меню не работает на мобильных устройствах и http://alittlecode.com/fix-twitter-bootstraps-dropdown-menus-in-touch-screens/
В конечном итоге мы обнаружили, где происходит закрытие и условно называется clearMenus()
только если ссылки parent или grand parent не имели dropdown-submenu
класс!--8-->
$(document)
.on('click.dropdown.data-api', function (e) {
//fix start
var $parent = $(e.target).parent()
var $grandparent = $parent.parent()
if (!$parent.hasClass('dropdown-submenu') && !$grandparent.hasClass('dropdown-submenu')) {
clearMenus()
}
//clearMenus
//end fix
})
.on('click.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
.on('click.dropdown.data-api' , toggle, Dropdown.prototype.toggle)
.on('keydown.dropdown.data-api', toggle + ', [role=menu]' , Dropdown.prototype.keydown)
}(window.jQuery);
надеюсь, что это поможет!