{"id":848,"date":"2024-07-31T07:45:19","date_gmt":"2024-07-31T05:45:19","guid":{"rendered":"https:\/\/blog.sutilweb.eu\/?page_id=848"},"modified":"2024-07-31T07:46:20","modified_gmt":"2024-07-31T05:46:20","slug":"016-dom-stoppropagation-preventdefault","status":"publish","type":"page","link":"https:\/\/sutilweb.eu\/index.php\/lenguajes\/javascript\/javascript-practico\/13-dom-document-object-model\/016-dom-stoppropagation-preventdefault\/","title":{"rendered":"016. DOM: stopPropagation &amp; preventDefault"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">En los cap\u00edtulos anteriores hemos estado viendo la <strong>manipulaci\u00f3n de los eventos<\/strong> en el <strong>DOM<\/strong>. En este cap\u00edtulo vamos a ver como detener esta <strong>propagaci\u00f3n<\/strong> que ve\u00edamos en el cap\u00edtulo anterior, porque puede haber ocasiones en las que ya no requeramos que nuestro <strong>evento<\/strong> se propague hacia los elementos hijos o padres, dependiendo de la fase que estemos trabajando (<strong>burbuja<\/strong> o <strong>captura<\/strong>), y entonces solamente se ejecute una sola vez la propagaci\u00f3n de nuestra <strong>funci\u00f3n manejadora<\/strong>.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p class=\"wp-block-paragraph\">Puede ocurrir que, hay ciertos elementos del <strong>DOM<\/strong> que tienen comportamientos o <strong>eventos<\/strong> por defecto, por ejm, el <strong><em>input submit<\/em><\/strong> de un <strong>formulario<\/strong>, sin necesidad de que programemos nada, cuando presionamos un <strong><em>input<\/em><\/strong> de tipo <strong><em>submit<\/em><\/strong> en el <strong>formulario<\/strong>, ese formulario se procesa, cuando controlamos el <strong>scroll<\/strong> de las barras de desplazamiento, ya sea con las flechas del cursor o con la rueda del mouse, ese es el comportamiento por defecto que justamente tienen las teclas de arriba\/abajo o izquierda\/derecha, o el comportamiento que tienen los enlaces, cuando damos clic a un enlace <strong>HTML<\/strong>, nos lleva al contenido que tenga ese <em><strong>anchor<\/strong><\/em> o enlace en su propia <strong><em>href<\/em><\/strong>, pero puede haber ocasiones que queramos hacer otras acciones.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Prevenir la acci\u00f3n por defecto<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">La manera de prevenir la acci\u00f3n por defectos que tengan nuestros elementos del DOM va a ser la siguiente. Vamos a utilizar un m\u00e9todo denominado <em><strong>stopPropagation()<\/strong><\/em>, que, como su nombre indica, frena la propagaci\u00f3n del evento en el resto de elementos y solo propaga el evento en el elemento sobre el que estemos actuando. Tambi\u00e9n vamos a manejar un m\u00e9todo denominado <em><strong>preventDefault()<\/strong><\/em> que lo que hace es cancelar la acci\u00f3n que tenga por defecto el elemento.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>Nota<\/strong>: es importante tener controlado el <strong>concatenamiento de los elementos<\/strong> sobre los que vamos a lanzar <strong>eventos<\/strong>.<\/p>\n<\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>En los cap\u00edtulos anteriores hemos estado viendo la manipulaci\u00f3n de los eventos en el DOM. En este cap\u00edtulo vamos a [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":800,"menu_order":15,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-848","page","type-page","status-publish","hentry"],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false},"uagb_author_info":{"display_name":"Sutil Web","author_link":"https:\/\/sutilweb.eu\/index.php\/author\/sutilweb\/"},"uagb_comment_info":0,"uagb_excerpt":"En los cap\u00edtulos anteriores hemos estado viendo la manipulaci\u00f3n de los eventos en el DOM. En este cap\u00edtulo vamos a [&hellip;]","_links":{"self":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/848","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/comments?post=848"}],"version-history":[{"count":3,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/848\/revisions"}],"predecessor-version":[{"id":851,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/848\/revisions\/851"}],"up":[{"embeddable":true,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/800"}],"wp:attachment":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/media?parent=848"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}