Isso está ficando irritante - quando eu clico em um item em uma lista suspensa do Bootstrap, a lista suspensa não fecha. Eu configurei para abrir uma caixa de luz do Facebox quando você clica no item suspenso, mas há um problema com ele.
O que eu tentei
Quando o item é clicado, tentei fazer o seguinte:
$('.dropdown.open').removeClass('open');
$('.dropdown-menu').hide();
Isso o esconde, mas por algum motivo ele não abrirá novamente.
Como você pode ver, eu realmente preciso que a lista suspensa seja fechada, porque parece uma porcaria quando permanece aberta (principalmente porque o z-index
da lista suspensa é mais alto do que a sobreposição da caixa modal Facebox.
Por que não estou usando a caixa modal embutida do Bootstrap
Se você está se perguntando por que não estou usando a bela caixa modal embutida no Bootstrap , é porque:
- Ele não tem uma maneira de carregar conteúdo com AJAX.
- Você tem que digitar HTML todas as vezes para o modal; com o Facebox, você pode fazer um simples:
$.facebox({ajax:'/assets/ajax/dialogs/dialog?type=block-user&id=1234567'});
- Ele usa animações CSS3 para animar (o que parece muito bom), mas em navegadores não CSS3 ele apenas mostra, o que não parece muito bom; Facebox usa JavaScript para fade in, de forma que funciona em todos os navegadores.
jquery
twitter-bootstrap
Nathan
fonte
fonte
.dropdown('toggle')
fecha o menu suspenso, mas também desativa sua abertura novamente! Não sei para que serve isso!open
classe funciona, mas não atualizaaria-expanded
. É sempre melhor usar a API quando possível.tentei a maioria das opções a partir daqui, mas nenhuma delas funcionou realmente para mim. (O
$('.dropdown.open').removeClass('open');
ocultava, mas se você mexia antes de clicar em qualquer outra coisa, ele aparecia novamente.então acabei fazendo isso com um
$("body").trigger("click")
fonte
<body>
, ele fecha o menu suspenso?Bootstrap 4 (outubro de 2018):
fonte
Isso pode ser feito sem escrever o código JavaScript, adicionando o atributo data-toggle = "dropdown" na tag âncora, conforme mostrado abaixo:
fonte
Você só precisa
$('.dropdown.open').removeClass('open');
remover a segunda linha que oculta o menu suspenso.fonte
Isto é o que funcionou para mim:
fonte
A resposta selecionada não funcionou para mim, mas acho que é por causa da versão mais recente do Bootstrap. Acabei escrevendo isso:
Espero que isso seja útil para alguém no futuro.
fonte
Experimente isso!
OU
Sempre funciona para mim.
fonte
Por que usar o meu método, porque se o usuário sair do div, este método permite ao usuário um certo atraso antes que os submenus desapareçam. É como usar o plugin superfish.
1) Primeiro download hover intent javascript
Link aqui: javascript de intenção de passar o mouse
2) Aqui está meu código para executar
fonte
fonte
A leitura da documentação e o uso de JavaScript podem ser feitos com o método toggle:
Você pode ler sobre isso em: http://getbootstrap.com/javascript/#dropdowns-methods
fonte
Tente abrir HTML com Bootstrap Modal, eu uso este código:
e o link é assim:
fonte
Aqui está minha solução sobre como fechar a lista suspensa do botão e alternar o botão:
Onde "this" é um contêiner global do grupo de botões.
fonte
Bootstrap 4.1:
fonte
Isso funcionou para mim, eu tinha uma barra de navegação e vários menus suspensos.
fonte
A maneira mais fácil de fazer isso é: você adiciona um rótulo de ocultação:
então, sempre que quiser ocultar o menu suspenso, você chama:
fonte
Não sei se isso vai ajudar alguém (talvez seja muito específico para o meu caso, e não para esta questão), mas para mim funcionou:
fonte
Depois de clicar:
fonte
Use class = "dropdown-toggle" na tag âncora e, ao clicar na tag âncora, o menu suspenso de bootstrap será fechado.
fonte
Ei, este truque simples do jQuery deve ajudar.
fonte
A maneira mais fácil:
fonte
você pode usar este código em seu manipulador de eventos atual
no meu cenário eu usei quando a chamada ajax completa
fonte
Selecionar por atributo é a maneira mais lenta. Aqui está a solução mais rápida para ocultar o menu suspenso aberto:
ou use o seguinte, se o menu suspenso não for o próximo elemento filho (encontre o controle suspenso pai mais próximo):
fonte
Ele pode ter sido adicionado em retrospecto (embora esse recurso não esteja documentado , mesmo no Bootstrap 4.3.1), mas você pode simplesmente chamá-lo com um
hide
parâmetro. Apenas certifique-se de chamá-lo no elemento toggler. Igual a:Claro, isso também funciona ao contrário com
show
.fonte