"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como evitar que os menus suspensos do Bootstrap do Twitter fechem com cliques internos?

Como evitar que os menus suspensos do Bootstrap do Twitter fechem com cliques internos?

Publicado em 2024-11-07
Navegar:668

How to Prevent Twitter Bootstrap Dropdown Menus from Closing on Internal Clicks?

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.

Tutorial mais recente Mais>

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