Prevenindo o fechamento do menu suspenso em cliques internos
Para evitar que os menus suspensos do Twitter Bootstrap fechem quando um elemento interno é clicado, uma solução que contorna o tratamento de eventos de clique delegado é necessário. Aqui está uma explicação detalhada e uma solução proposta:
Por padrão, os menus suspensos do Twitter Bootstrap fecham com qualquer clique, mesmo dentro do próprio menu. Para superar esse comportamento, uma abordagem comum envolve anexar um manipulador de eventos de clique ao menu suspenso e chamar event.stopPropagation() para evitar a propagação de eventos.
No entanto, para configurações que utilizam componentes como controles de carrossel, o evento delegado O mecanismo de manipulação do Twitter Bootstrap pode interferir no comportamento pretendido. Nesses casos, clicar nesses controles pode não acionar a ação esperada devido ao evento não alcançar os manipuladores de eventos delegados.
Contar com eventos ocultos/ocultos suspensos não é uma alternativa viável, pois esses eventos carecem de informações essenciais e controle sobre o conteúdo do menu suspenso.
Solução proposta
Uma solução eficaz é usar a delegação de eventos em um elemento de contêiner que abriga o menu suspenso. Aqui está um exemplo:
$(document).on('click', 'someyourContainer .dropdown-menu', function (e) {
e.stopPropagation();
});
Neste exemplo, clicar em elementos dentro do contêiner especificado ainda propagará o evento para seus respectivos manipuladores delegados. No entanto, cliques específicos no menu suspenso serão interceptados e event.stopPropagation() impedirá o comportamento de fechamento do menu suspenso.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3