Foros del Web » Programando para Internet » Javascript »

¿Cómo usar event listener en este caso?

Estas en el tema de ¿Cómo usar event listener en este caso? en el foro de Javascript en Foros del Web. Buenas, necesito hacer $('a').bind('click', function () { }); , pero sin jquery. Me parece excesivo subir toda la librería solo para eso... Vi document.addEventListener('click', element), ...
  #1 (permalink)  
Antiguo 24/07/2012, 07:08
 
Fecha de Ingreso: noviembre-2010
Mensajes: 1.242
Antigüedad: 8 años, 9 meses
Puntos: 73
¿Cómo usar event listener en este caso?

Buenas, necesito hacer $('a').bind('click', function () { });, pero sin jquery. Me parece excesivo subir toda la librería solo para eso...

Vi document.addEventListener('click', element), pero no conseguí hacerlo aún. ¿Cómo puedo conseguir algo como bind('click') de jquery?

Saludos!
__________________
:)
  #2 (permalink)  
Antiguo 24/07/2012, 07:40
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 12 años, 2 meses
Puntos: 1567
Respuesta: ¿Cómo usar event listener en este caso?

En este post reciente
http://www.forosdelweb.com/f13/obten...9/#post4234676
lo he utilizado, mirá el ejemplo (fijate el uso en ie8/7)

SAludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #3 (permalink)  
Antiguo 24/07/2012, 07:44
 
Fecha de Ingreso: noviembre-2010
Mensajes: 1.242
Antigüedad: 8 años, 9 meses
Puntos: 73
Respuesta: ¿Cómo usar event listener en este caso?

Conseguido, gracias
__________________
:)
  #4 (permalink)  
Antiguo 24/07/2012, 08:02
 
Fecha de Ingreso: noviembre-2010
Mensajes: 1.242
Antigüedad: 8 años, 9 meses
Puntos: 73
Respuesta: ¿Cómo usar event listener en este caso?

Una última cosa, lo que intento es para www.bz6.org y www.eu5.es, todos los links hacia otras webs pasen por http://www.eu5.es/?mu_redirect=[url] para controlar las redirecciones que se hacen. Apenas relentiza y evito que el phishing y esas cosas sean efectivas (Ejemplo: http://www.eu5.es/?mu_redirect=http://reltime2012.ru).

Añado el js antes de </body>.

Probé en local con:

Código Javascript:
Ver original
  1. var a = document.getElementsByTagName('a');
  2. for (i=0; i<a.length; i++)
  3. {
  4.     a[i].addEventListener("click", function ()
  5.     {
  6.         alert(this.href);
  7.         return false;
  8.                    
  9.     }, false);
  10. }

Pero resulta que ese return false; no surge efecto, sigue funcionando el link... Necesito dirigirlo (en parent o _bank) a la url de redirección y comprobar si es de location.host, para dejarlo igual. Por eso necesito obtener la url a la que quiere ir y detener el link.

¿Hay forma de hacer efectivo ese return false?

PD: no puedo editar onclick, no se lo que podría tener... así que ie -9 se quedarán tan cual
__________________
:)

Última edición por luisgzafra; 24/07/2012 a las 08:08
  #5 (permalink)  
Antiguo 24/07/2012, 10:13
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 12 años, 2 meses
Puntos: 1567
Respuesta: ¿Cómo usar event listener en este caso?

no me queda muy claro que es eso de la redirección, pero probá con esto. no usa addEventListener (que usa preventDefault() y no return false), me parece más compatible

Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2.    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <title>Agregar evento + false</title>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6. </head>
  7. <a href="http://emprear.com">emprear</a><br />
  8. <a href="http://google.com">google</a> <script language="JavaScript" type="text/javascript">
  9. //<![CDATA[
  10. var a = document.getElementsByTagName('a');
  11. for (i=0; i<a.length; i++){
  12. a[i].onclick = redir;
  13. }
  14. function redir(){
  15. alert(this.href);
  16. return false;
  17. }
  18. //]]>
  19. </body>
  20. </html>

ahi ya tenés el href para todos los links de la página, bastarían poner tus condiciones en esa función si es que debe devolver false o no.
Funciona en IE/FF/Chrome (son los que probé)
Y no olvides que estamos insertando el js antes del cierre de body, si no hay que hacerle el onload a la primera parte que agrega el evento

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Etiquetas: event, listener, usar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:39.