{"id":527,"date":"2019-11-05T13:16:22","date_gmt":"2019-11-05T13:16:22","guid":{"rendered":"https:\/\/www.josejavierfm.es\/blog\/?p=527"},"modified":"2019-11-06T06:46:53","modified_gmt":"2019-11-06T06:46:53","slug":"usar-eventos-en-javascript","status":"publish","type":"post","link":"https:\/\/www.josejavierfm.es\/blog\/2019\/11\/05\/usar-eventos-en-javascript\/","title":{"rendered":"Usar eventos en javascript"},"content":{"rendered":"<p>De cara a optimizar el c\u00f3digo tengo un fichero con varias funciones js, que las utilizo en varias paginas, pero quiero poder variar alg\u00fan comportamiento para la misma acci\u00f3n en distintas paginas, por lo que para evitar tener que pasar alg\u00fan par\u00e1metro o duplicar funciones voy a utilizar eventos.<\/p>\n<p>As\u00ed en la funci\u00f3n del fichero js lanzo el evento:<\/p>\n<pre>function guardarx(){\r\n\/\/guardo con ajax...\r\n.ajax(....\r\n\/\/ Creo el evento\r\nvar event = new CustomEvent(\"evento-guardar-x\", { \"Parametro\": \"Valor\" });\r\n\/\/Lanzo el evento\r\ndocument.dispatchEvent(event);\r\n}\r\n<\/pre>\n<p>Y luego en cada una de las paginas que utilizan el js puedo a\u00f1adir un listener si deseo a\u00f1adir funcionalidad especial.<\/p>\n<pre>document.addEventListener(\"evento-guardar-x\", function(e) {\r\nconsole.log(e);\r\n});\r\n<\/pre>\n<p>Podeis ver una demo <a href=\"https:\/\/jsfiddle.net\/gj84cLf6\/\" target=\"_blank\">aqui<\/a><\/p>\n\n<div class=\"twitter-share\"><a href=\"https:\/\/twitter.com\/intent\/tweet?via=josejavierfm\" class=\"twitter-share-button\">Twittear<\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>De cara a optimizar el c\u00f3digo tengo un fichero con varias funciones js, que las utilizo en varias paginas, pero quiero poder variar alg\u00fan comportamiento para la misma acci\u00f3n en distintas paginas, por lo que para evitar tener que pasar alg\u00fan par\u00e1metro o duplicar funciones voy a utilizar eventos. As\u00ed en la funci\u00f3n del fichero [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[10],"tags":[],"_links":{"self":[{"href":"https:\/\/www.josejavierfm.es\/blog\/wp-json\/wp\/v2\/posts\/527"}],"collection":[{"href":"https:\/\/www.josejavierfm.es\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.josejavierfm.es\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.josejavierfm.es\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.josejavierfm.es\/blog\/wp-json\/wp\/v2\/comments?post=527"}],"version-history":[{"count":4,"href":"https:\/\/www.josejavierfm.es\/blog\/wp-json\/wp\/v2\/posts\/527\/revisions"}],"predecessor-version":[{"id":531,"href":"https:\/\/www.josejavierfm.es\/blog\/wp-json\/wp\/v2\/posts\/527\/revisions\/531"}],"wp:attachment":[{"href":"https:\/\/www.josejavierfm.es\/blog\/wp-json\/wp\/v2\/media?parent=527"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.josejavierfm.es\/blog\/wp-json\/wp\/v2\/categories?post=527"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.josejavierfm.es\/blog\/wp-json\/wp\/v2\/tags?post=527"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}