Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

361
Views
jquery: event.stopImmediatePropagation () frente a devolver falso

¿Hay alguna diferencia entre llamar a event.stopImmediatePropagation() y return false dentro de un controlador de eventos?

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Sí, son diferentes.

return false es básicamente lo mismo que llamar a event.stopPropagation() y event.preventDefault() .

Mientras que event.stopImmediatePropagation() es lo mismo que event.stopPropagation() además de evitar que se ejecuten otros controladores de eventos registrados en el mismo elemento. Por lo tanto, no impide la acción predeterminada para un evento, como seguir un enlace en el que se hizo clic.

En breve:

 stop | prevent | prevent "same element" bubbling | default action | event handlers return false Yes Yes No preventDefault No Yes No stopPropagation Yes No No stopImmediatePropagation Yes No Yes

return false también funciona en controladores de eventos de JavaScript "normales"

event.stopPropagation() y event.preventDefault() también funcionan en controladores de eventos de JavaScript "normales" (en un navegador compatible con W3C), mientras que event.stopImmediatePropagation() es una extensión de jQuery ( actualización: aparentemente es parte del nivel DOM 3 Especificación de eventos ).

Nota: return false no evita que el evento aparezca en los controladores de eventos "normales" (no jQuery) (consulte esta respuesta ) (pero aún evita la acción predeterminada).


Tal vez valga la pena leer:

  • Eventos de jQuery: detener (mal) uso de Return False
  • quirksmode.org - Orden de eventos
over 4 years ago · Santiago Trujillo Report

0

Devolver false detendrá el burbujeo de eventos, pero se activarán otros eventos enlazados. Sin embargo stopImmediatePropagation evita que se activen otros eventos vinculados y deja de burbujear.

Ejemplo de código de esto en jsfiddle .

over 4 years ago · Santiago Trujillo Report

0

Aquí está la demostración completa de return false , preventDefault , stopPropagation y stopImmediatePropagation :

 var kid = document.getElementsByTagName('button')[0]; var dad = document.getElementsByTagName('div')[0]; kid.addEventListener('click', function(e) { console.log('kid here'); e.stopImmediatePropagation(); }); kid.addEventListener('click', function(e) { console.log('neighbour kid here'); }); dad.addEventListener('click', function(e) { console.log('dad here'); }); dad.addEventListener('click', function(e) { console.log('neighbour dad here'); });
 <div> <button>press</button> </div>

(También disponible en JSFiddle ).

La tabla en la respuesta de manwal no es completamente correcta.

 stop | prevent | prevent bubbling | default action | event handlers | | Same Element | Parent Element return false Yes Yes No No preventDefault No Yes No No stopPropagation Yes No No Yes stopImmediatePropagation Yes No Yes **Yes**
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!