Foros del Web » Programando para Internet » Javascript »

problema con onclick

Estas en el tema de problema con onclick en el foro de Javascript en Foros del Web. Q tal, aunque parezca un problema bien pendejo, pero no he podido, miren tengo esta funcion function coordenadasXY ( evento ) { var ie = ...
  #1 (permalink)  
Antiguo 25/09/2009, 20:07
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 9 meses
Puntos: 32
problema con onclick

Q tal, aunque parezca un problema bien pendejo, pero no he podido, miren tengo esta funcion

function coordenadasXY( evento )
{

var ie = navigator.userAgent.toLowerCase().indexOf('msie')! =-1;

if(ie) {
coordenadaX = evento.clientX + document.body.scrollLeft;
coordenadaY = evento.clientY + document.body.scrollTop;
} else {
coordenadaX = evento.pageX;
coordenadaY = evento.pageY;
}

return new Array( coordenadaX, coordenadaY );
}

Para llamarla y q funcione correctamente, lo hago asi

document.onclick = coordenadasXY;

Pero la cuestion es que quiero es los valores retornados, alguien me dice como le hago ?


Salu2
  #2 (permalink)  
Antiguo 25/09/2009, 23:23
Avatar de pato12  
Fecha de Ingreso: septiembre-2007
Ubicación: Salta
Mensajes: 1.620
Antigüedad: 16 años, 7 meses
Puntos: 101
Respuesta: problema con onclick

Hola,
Intenta haci:
Código javascript:
Ver original
  1. function coordenadasXY( evento )
  2. {
  3.  
  4. var ie = navigator.userAgent.toLowerCase().indexOf('msie')!=-1;
  5.  
  6. if(ie) {
  7. coordenadaX = evento.clientX + document.body.scrollLeft;
  8. coordenadaY = evento.clientY + document.body.scrollTop;
  9. } else {
  10. coordenadaX = evento.pageX;
  11. coordenadaY = evento.pageY;
  12. }
  13.  
  14. return new Array( coordenadaX, coordenadaY );
  15. }
  16.  
  17. function funcion_onclick(e){
  18. var coordenadas=coordenadasXY(e);
  19. alert(coordenadas.join(', '));
  20. }
  21.  
  22. document.onclick = funcion_onclick;
Suerte
Salu2
__________________
Half Music - www.halfmusic.com
  #3 (permalink)  
Antiguo 26/09/2009, 18:58
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 9 meses
Puntos: 32
Respuesta: problema con onclick

Q tal, deveras q no he podido sacar los valores devueltos, tengo esta funcion que hize, y funciona muy bien, y solo quiero obtener el valor devuelto por la funcion

function coordenadasXY( evento )
{
var ancho_capa = 430, alto_capa = 300, fin_x = 0, fin_y = 0;

var ie = navigator.userAgent.toLowerCase().indexOf('msie')! =-1;

if(ie) {
coordenadaX = evento.clientX + document.body.scrollLeft;
coordenadaY = evento.clientY + document.body.scrollTop;
} else {
coordenadaX = evento.pageX;
coordenadaY = evento.pageY;
}

// Ancho y alto del navegador...
var ancho_bro = screen.availWidth;
var alto_bro = screen.availHeight - 100;


var necesarioX = ancho_bro - coordenadaX;
var necesarioY = alto_bro - coordenadaY;

// Cuadrante por defecto
if( necesarioX >= ancho_capa && necesarioY >= alto_capa ) {
fin_x = coordenadaX; fin_y = coordenadaY;
}
// Cuadrante inferior izquierdo
else {
var coordenada2X = coordenadaX - ancho_capa;
var necesario2X = ancho_bro - coordenada2X;
if( necesario2X >= ancho_capa && necesarioY >= alto_capa ) {
fin_x = coordenada2X; fin_y = coordenadaY;

}
// Cuadrante superior izquierdo
else {
var coordenada2Y = coordenadaY - alto_capa;
var necesario2Y = alto_bro - coordenada2Y;
if( necesario2Y >= alto_capa && coordenada2X >= ancho_capa ) {
fin_y = coordenada2Y; fin_x = coordenada2X;
} else {

fin_x = coordenada2X + ancho_capa;
fin_y = coordenada2Y;


}

}


}
return new Array( fin_x, fin_y );
}


function tooltipGrid(url, valores)
{


// Quiero obtener los valores retornador por la funcion
document.onclick = coordenadasXY;
ajax( 'POST', url, valores, 'contenedor', 0 );

}


la funcion tooltipGrid debe recibir esos valores, de alguna forma para poder hace algo con ellos, pero resulta q siempre tengo q ejectuar esta funcion de esta forma, document.onclick = nombre_funcion, para poder obtener el evento.


Alguien tiene alguna idea ?
  #4 (permalink)  
Antiguo 26/09/2009, 22:03
Avatar de pato12  
Fecha de Ingreso: septiembre-2007
Ubicación: Salta
Mensajes: 1.620
Antigüedad: 16 años, 7 meses
Puntos: 101
Respuesta: problema con onclick

Hola,
Intenta haci:
Código javascript:
Ver original
  1. function coordenadasXY( evento )
  2. {
  3. var ancho_capa = 430, alto_capa = 300, fin_x = 0, fin_y = 0;
  4.  
  5. var ie = navigator.userAgent.toLowerCase().indexOf('msie')! =-1;
  6.  
  7. if(ie) {
  8. coordenadaX = evento.clientX + document.body.scrollLeft;
  9. coordenadaY = evento.clientY + document.body.scrollTop;
  10. } else {
  11. coordenadaX = evento.pageX;
  12. coordenadaY = evento.pageY;
  13. }
  14.  
  15. // Ancho y alto del navegador...
  16. var ancho_bro = screen.availWidth;
  17. var alto_bro = screen.availHeight - 100;
  18.  
  19.  
  20. var necesarioX = ancho_bro - coordenadaX;
  21. var necesarioY = alto_bro - coordenadaY;
  22.  
  23. // Cuadrante por defecto
  24. if( necesarioX >= ancho_capa && necesarioY >= alto_capa ) {
  25. fin_x = coordenadaX; fin_y = coordenadaY;
  26. }
  27. // Cuadrante inferior izquierdo
  28. else {
  29. var coordenada2X = coordenadaX - ancho_capa;
  30. var necesario2X = ancho_bro - coordenada2X;
  31. if( necesario2X >= ancho_capa && necesarioY >= alto_capa ) {
  32. fin_x = coordenada2X; fin_y = coordenadaY;
  33.  
  34. }
  35. // Cuadrante superior izquierdo
  36. else {
  37. var coordenada2Y = coordenadaY - alto_capa;
  38. var necesario2Y = alto_bro - coordenada2Y;
  39. if( necesario2Y >= alto_capa && coordenada2X >= ancho_capa ) {
  40. fin_y = coordenada2Y; fin_x = coordenada2X;
  41. } else {
  42.  
  43. fin_x = coordenada2X + ancho_capa;
  44. fin_y = coordenada2Y;
  45.  
  46.  
  47. }
  48.  
  49. }
  50.  
  51.  
  52. }
  53. return new Array( fin_x, fin_y );
  54. }
  55. function tooltipGrid(e,url)
  56. {
  57.  
  58. var valores=coordenadasXY(e);
  59. ajax( 'POST', url, valores, 'contenedor', 0 );
  60.  
  61. }
  62. document.onclick = tooltipGrid;
Suerte
Salu2
__________________
Half Music - www.halfmusic.com
  #5 (permalink)  
Antiguo 27/09/2009, 10:33
Avatar de ElJavista
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 2.231
Antigüedad: 17 años, 2 meses
Puntos: 67
Respuesta: problema con onclick

Cita:
Iniciado por acoevil Ver Mensaje
Q tal, aunque parezca un problema bien pendejo, pero no he podido, miren tengo esta funcion

function coordenadasXY( evento )
{

var ie = navigator.userAgent.toLowerCase().indexOf('msie')! =-1;

if(ie) {
coordenadaX = evento.clientX + document.body.scrollLeft;
coordenadaY = evento.clientY + document.body.scrollTop;
} else {
coordenadaX = evento.pageX;
coordenadaY = evento.pageY;
}

return new Array( coordenadaX, coordenadaY );
}

Para llamarla y q funcione correctamente, lo hago asi

document.onclick = coordenadasXY;

Pero la cuestion es que quiero es los valores retornados, alguien me dice como le hago ?


Salu2

A mi me parece que tu función está bien pero la manera de aplicarlo es absurda. Lo que devuelve esa función como lo pretendes caputrar? Al hacer
document.onclick = coordenadasXY() estás ejecutando una función que debería solamenente ejecutar una acción, no que devuelva un valor, porque ese valor se va al limbo. La pregunta es: qué quieres hacer con esos valores devueltos con la función. Lo que quieras hacer no sirve si lo ejecutas mediante document.onclick, así de simple. Explica bien tus intenciones y entonces podremos ayudarte.
  #6 (permalink)  
Antiguo 28/09/2009, 13:20
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 9 meses
Puntos: 32
Respuesta: problema con onclick

Q tal concuerdo contigo, me podrias enseñar otra forma de hacer la funcion ?, seria bueno aprender mas metodos, gracias...
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 09:26.