Boostrap 2.0: добавление формы входа в подменю, предотвращающее закрытие фокуса

Я использую Bootstrap 2.0 для создания панели навигации, очень похожей на пример на их сайте. У меня есть подменю (.dropdown-menu), в котором я разместил форму входа (имя пользователя, пароль, отправить).

Все отображается просто отлично, но когда я нажимаю поля ввода для имени пользователя или пароля, меню, кажется, думает, что я щелкнул элемент меню, и подменю закрывается. Любые намеки на то, как я могу предотвратить это?

Решение:

$('.dropdown form').on('click', function (e) {
    e.stopPropagation()
})

person Eirik Hoem    schedule 18.02.2012    source источник
comment
О! Сначала я попробовал .preventDefault(), и это не сработало. Рад, что это было просто, спасибо за публикацию решения!   -  person fholgado    schedule 20.02.2012


Ответы (1)


Добавьте класс persist для элемента LI.

// редактировать

JS-код, чтобы он действительно работал:

(function($) {
var toggle = '[data-toggle="dropdown"]';

function clearMenus() {
    var toggleParent = $(toggle).parent();
    if(!toggleParent.hasClass('persist'))
        toggleParent.removeClass('open');
}

$(function () {
    $('html').off('click.dropdown.data-api');
    $('html').on('click.dropdown.data-api', clearMenus);
});
})(window.jQuery);
person Bartosz Grzybowski    schedule 18.02.2012
comment
Это не работает. Может быть, это была функция Bootstrap 1.x? В файлах CSS/JS для 2.0 нет упоминания о сохранении. - person Eirik Hoem; 18.02.2012
comment
да, плохо, но я не нашел решения этой проблемы, поэтому мы сделали эту функцию для этого: (function($) { var toggle = '[data-toggle="dropdown"]'; function clearMenus() { var toggleParent = $(toggle).parent(); if(!toggleParent.hasClass('persist')) toggleParent.removeClass('open'); } $(function () { $('html').off('click.dropdown.data-api'); $('html').on('click.dropdown.data-api', clearMenus); }); })(window.jQuery); - person Bartosz Grzybowski; 18.02.2012
comment
Оказалось, что исправить это НАМНОГО проще. Посмотреть оригинал - person Eirik Hoem; 18.02.2012