Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

197
Visualizações
JQuery en el área de clic: ¿no activa el evento de clic al hacer clic en un elemento secundario específico?

Tengo un bloque HTML que tiene un pequeño ícono X en la esquina. Cuando el usuario hace clic dentro de esta área, llamo a una función, pero NO quiero llamar a esta función al hacer clic en la X que se encuentra dentro de esa área. Aquí está mi ejemplo simplificado:

html:

 <ul id="team_members"> <li class="member"> <span>Some text</span> <span>Some text</span> <span>Some text</span> <i class="icon-remove"></i> </li> </ul>

jquery:

 $("#team_members").on('click', ".member:not(.icon-remove)", function(e) { //some code alert("clicked!"); });

Lo que espero que suceda es que hacer clic en cualquier parte del "miembro" <li> activará mi función onclick, pero cuando haga clic en "icono-eliminar", la función NO se activará, ya que quiero que se active una función diferente allí. .

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

La cadena de selector ".member:not(.icon-remove)" aún coincidirá con el elemento .member , por lo que el oyente aún se ejecutará. Verifique si el elemento en el que se hizo clic, el objetivo, para ver si es el icono o no.

 $("#team_members").on('click', function(event) { if (event.target.matches('.icon-remove')) { // icon clicked return; } //some code alert("clicked!"); );
about 4 years ago · Juan Pablo Isaza Relatório

0

El problema con su código es que está haciendo coincidir un elemento .member que no es .icon-remove donde lo que quiere es un elemento secundario de .member que no es .icon-remove . Entonces solo necesita un espacio entre .member y :not(.icon-remove) en el selector:

 $("#team_members").on('click', ".member :not(.icon-remove)", function(e) { //some code alert("clicked!"); }); $("#team_members").on('click', ".member .icon-remove", function(e) { //some code alert("deleted!"); });
 .icon-remove:after { content: 'delete'; }
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <ul id="team_members"> <li class="member"> <span>Some text</span> <span>Some text</span> <span>Some text</span> <i class="icon-remove"></i> </li> </ul>

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda