Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/08/2011, 01:47
hernandavidgomez
 
Fecha de Ingreso: junio-2009
Mensajes: 33
Antigüedad: 14 años, 11 meses
Puntos: 1
Exclamación Problema con addeventlistener al pasar event como variable ayuda!!!!riable

HOLA:

LLEVO HORAS TRATANDO DE SOLUCIONAR ESTE PROBLEMA Y NO HE PODIDO, OJALA ME PUEDAN AYUDAR, DE ANTEMANO MUCHAS GRACIAS POR SU TIEMPO.
EL PROBLEMA ES EL SIGUIENTE:
RESULTA QUE TENGO UN BOTON QUE AL DAR CLICK LE AGREGO UNAS FUNCIONES CON ADDEVENTLISTENER. PINCHO UNA VEZ AGREGO UNAS FUNCIONES Y QUITO OTRAS, PINCHO OTRA VEZ Y REVIERTO EL PROCESO. ME FUNCIONA DE MARAVILLA. EL PROBLEMA ME HA SURGIDO HOY CUANDO LO PROBE EN FIREFOX Y PASA LO SIGUIENTE:
AL DAR CLICK NECESITO SABER LA POSICION DEL PUNTERO, PARA ELLO TENGO UNA FUNCION QUE ME REALIZA LA OPERACION, EL PROBLEMA ES QUE PARA HALLAR ESA POSICION UTILIZO LA SIGUIENTE LINEA:
Código Javascript:
Ver original
  1. posicionx=event.x-posicion_div_x+document.body.scrollLeft;
  2.     posiciony=event.y-posicion_div_y+document.body.scrollTop;

EN TODOS LOS NAVEGADORES FUNCIONA BIEN, EL PROBLEMA SURGE CON FIREFOX PUES ME DICE QUE "EVENT" NO ESTA DEFINIDO. YA SE QUE PARA FIREFOX CUANDO LLAMO LA FUNCION DEBO PASAR EL EVENTO COMO PARAMETRO, EL PROBLEMA ES QUE LA FUNCION DE POSICION DEL PUNTERO PREVIAMENTE LA HE AÑADIDO CON EL ADDEVENTLISTENER Y SI TRATO DE PASAR "EVENT" COMO PARAMETRO ME DICE NUEVAMENTE QUE NO SE HA DEFINIDO, Y SI LO PASO ENTRECOMILLAS LO PASA COMO UNA SIMPLE CADENA DE TEXTO Y NO COMO EL EVENTO QUE NECESITO. ESPERO HABER SIDO CLARO. ACA VA EL CODIGO.
Código Javascript:
Ver original
  1. function posicion_puntero(e)
  2. {
  3.     document.getElementById('capa_tag').style.display='none';
  4.     if(navegador == 'explorer')
  5.     {
  6.         posicion_div_y=document.getElementById("div_imagen").offsetParent.offsetTop;
  7.         posicion_div_x=document.getElementById("div_imagen").offsetParent.offsetLeft;
  8.     }
  9.     else
  10.     {
  11.         posicion_div_y=document.getElementById("div_imagen").offsetTop;
  12.         posicion_div_x=document.getElementById("div_imagen").offsetLeft;
  13.     }
  14.    
  15.     posicionx=event.x-posicion_div_x+document.body.scrollLeft;
  16.     posiciony=event.y-posicion_div_y+document.body.scrollTop;
  17.    
  18.     document.getElementById('coordx').value=posicionx;
  19.     document.getElementById('coordy').value=posiciony;
  20.     animatedcollapse.show('capa_tag');
  21.     var capa_tag=document.getElementById('capa_tag');
  22.     ancho_capa=capa_tag.offsetWidth;
  23.     capa_medio=ancho_capa/2;
  24.     /*capa_tag.style.top=(posicion_div_y+posiciony)+30+"px";
  25.     capa_tag.style.left=(posicion_div_x+posicionx)-capa_medio+"px";*/
  26.     capa_tag.style.top=(posiciony)+30+"px";
  27.     capa_tag.style.left=(posicionx)-capa_medio+"px";
  28.     var capa_target=document.getElementById('capa_target');
  29.     capa_target.style.display='block';
  30.     capa_target.style.top=(posiciony)-25+"px";
  31.     capa_target.style.left=(posicionx)-25+"px";
  32.    
  33. }

ACA AGREGO LA FUNCION ANTERIOR AL BOTON:

Código Javascript:
Ver original
  1. function taggea(men_finaliza, men_original, auto) {
  2. document.getElementById('boton_tag').innerHTML=men_finaliza;
  3. document.getElementById('boton_tag').style.backgroundImage="url(images/fondo-tagging-2.png)";
  4.             botontag=document.getElementById('boton_tag');
  5.             x=document.getElementById('imagen_world');
  6.             x.style.cursor="crosshair";
  7.             checkCookie('ayuda_tag');
  8.             if(tienecookie !== true)
  9.             {
  10.                 muestraAyuda(auto);
  11.             }
  12.         if (x.addEventListener){
  13.             x.addEventListener('click', function(){posicion_puntero('e')},false);
  14.             botontag.removeEventListener('click',function(){taggea;}, false);
  15.             botontag.onclick="";
  16.             botontag.addEventListener("click", function(){ taggea_ya_no(men_finaliza, men_original, auto)} , false);
  17.         } else {
  18.             x.attachEvent('onclick',posicion_puntero);
  19.             botontag.detachEvent ('onclick', taggea);
  20.             botontag.onclick = function(){taggea_ya_no(men_finaliza, men_original,auto);};
  21.         }
  22.     }

SE QUE AQUI HAY PERSONAS QUE CONOCEN MUCHO DEL TEMA, ESPERO QUE PORFAVOR ME PUEDAN AYUDAR PUES YA HE LEIDO, PROBADO Y PROBADO Y SIGO SIN PODER AGREGAR LA FUNCION EN FIREFOX, EN EL RESTO FUNCIONA A LAS MIL MARAVILLAS

GRACIAS