Foros del Web » Programando para Internet » Jquery »

seleccionar todos los handlers

Estas en el tema de seleccionar todos los handlers en el foro de Jquery en Foros del Web. hola a todos nuevamente... quisiera que e ayudaran si es que existe alguna forma de usar TODOS los handlers en una función sin tener que ...
  #1 (permalink)  
Antiguo 13/06/2013, 13:53
Avatar de torturo  
Fecha de Ingreso: octubre-2003
Ubicación: Cozumel y Cancun
Mensajes: 61
Antigüedad: 20 años, 6 meses
Puntos: 1
seleccionar todos los handlers

hola a todos nuevamente...
quisiera que e ayudaran si es que existe alguna forma de usar TODOS los handlers en una función sin tener que poner CADA uno de éstos...

ejemplo:

en vez de poner solamente un CLICK

$("#personaA1").click(function(){


que se usen TODOS los handlers para como hover y mouse keypress, mousemove, y ets...
quisiera usar esto para no tener que repetir todo esto así:

Cita:
$(".extrasA5 #personaA5").click(function(){
if( $("#personaA5").val() == "nino" )
$('#precioA5').val( "Precio: 20 MXN" );
if( $("#personaA5").val() == "adulto" )
$('#precioA5').val( "Precio: 50 MXN" );
}).mousemove(function(){
if( $("#personaA5").val() == "nino" )
$('#precioA5').val( "Precio: 20 MXN" );
if( $("#personaA5").val() == "adulto" )
$('#precioA5').val( "Precio: 50 MXN" );
}).keypress(function(){
if( $("#personaA5").val() == "nino" )
$('#precioA5').val( "Precio: 20 MXN" );
if( $("#personaA5").val() == "adulto" )
$('#precioA5').val( "Precio: 50 MXN" );
agradeceré sus respuestas :D
  #2 (permalink)  
Antiguo 13/06/2013, 13:57
Avatar de alberto510a  
Fecha de Ingreso: abril-2013
Mensajes: 351
Antigüedad: 11 años
Puntos: 35
Respuesta: seleccionar todos los handlers

Hola, sí que puedes hacerlo para ello solo debes hacer uso del método on() mira aquí te dejo una página que justo te lleva al ejemplo que lo hace así:

http://api.jquery.com/on/#example-6

Saludos!
__________________
No hay preguntas tontas, sino tontos que no preguntan.
  #3 (permalink)  
Antiguo 13/06/2013, 14:31
Avatar de torturo  
Fecha de Ingreso: octubre-2003
Ubicación: Cozumel y Cancun
Mensajes: 61
Antigüedad: 20 años, 6 meses
Puntos: 1
Respuesta: seleccionar todos los handlers

hola!!! muchisimas gracias, pero creo que no logré explicarme correctamente:

quiero poner esto con todos los handlers
$("#personaA1").click(function(){
var precio;
var tot = $('#cantitours').val()
for(num=1; num<=tot; num++)
{
if( $('#preciotour1').val('$119') && $("#personaA1").val() == "nino")
{precio = 119/2 ;}
}
$('#precioA1').val( Math.round(precio) );
});

pero lo voy a poner 10 veces... en "personaA1" en preciotour1
y así hasta llegar a "persona10 y preciotour10...
y bueno... si hago de uno por uno puede resultar muy largo...
  #4 (permalink)  
Antiguo 13/06/2013, 14:37
Avatar de alberto510a  
Fecha de Ingreso: abril-2013
Mensajes: 351
Antigüedad: 11 años
Puntos: 35
Respuesta: seleccionar todos los handlers

Hola, creo que te refieres a esto entonces:

Código Javascript:
Ver original
  1. $( '#persona1, #persona2, #persona3' )

Solo tienes que usar comas para separar los diferentes selectores.

Saludos!
__________________
No hay preguntas tontas, sino tontos que no preguntan.
  #5 (permalink)  
Antiguo 13/06/2013, 14:47
Avatar de torturo  
Fecha de Ingreso: octubre-2003
Ubicación: Cozumel y Cancun
Mensajes: 61
Antigüedad: 20 años, 6 meses
Puntos: 1
Respuesta: seleccionar todos los handlers

bueno sí... tiener razón, pero si te fijas, igual estoy manejando "preciotour1" y existen "preciotour2", ... "preciotour10"
y en fin... una serie de datos que en este momento no sabría como manejarlos....
  #6 (permalink)  
Antiguo 13/06/2013, 14:48
Avatar de torturo  
Fecha de Ingreso: octubre-2003
Ubicación: Cozumel y Cancun
Mensajes: 61
Antigüedad: 20 años, 6 meses
Puntos: 1
Respuesta: seleccionar todos los handlers

igual menciono que en donde dce la variable "precio" debo de poner como 15 variables...
  #7 (permalink)  
Antiguo 13/06/2013, 14:50
Avatar de alberto510a  
Fecha de Ingreso: abril-2013
Mensajes: 351
Antigüedad: 11 años
Puntos: 35
Respuesta: seleccionar todos los handlers

La manera de seleccionar varios elementos a la vez es así si las acciones que hacen cada 1 son diferentes pues simplemente no puedes juntarlos.

Saludos!
__________________
No hay preguntas tontas, sino tontos que no preguntan.
  #8 (permalink)  
Antiguo 13/06/2013, 14:53
Avatar de torturo  
Fecha de Ingreso: octubre-2003
Ubicación: Cozumel y Cancun
Mensajes: 61
Antigüedad: 20 años, 6 meses
Puntos: 1
Respuesta: seleccionar todos los handlers

está bien alberto, entonces supongo que tendré que hacerlo con todos... uno a uno

GRacias!!!
  #9 (permalink)  
Antiguo 13/06/2013, 14:54
Avatar de alberto510a  
Fecha de Ingreso: abril-2013
Mensajes: 351
Antigüedad: 11 años
Puntos: 35
Respuesta: seleccionar todos los handlers

Sí así es, de nada.

Suerte!
__________________
No hay preguntas tontas, sino tontos que no preguntan.
  #10 (permalink)  
Antiguo 13/06/2013, 16:13
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: seleccionar todos los handlers

Puedes hacer lo siguiente:

Le asignas la misma clase a los elementos con id: personaA1, personaA2, ...

Código Javascript:
Ver original
  1. $(".personas").click(function()
  2. {
  3.     var precio;
  4.     var tot = $('#cantitours').val();
  5.  
  6.         //Obtener id
  7.     var id = this.id.replace("personaA","");
  8.    
  9.     var $precioTour = $("#preciotour" + id);
  10.     var $precioA = $("#precioA" + id);
  11.     for(num=1; num<=tot; num++)
  12.     {
  13.         if($precioTour.val() == '$119' && $(this).val() == "nino")
  14.         {
  15.             precio = 119 / 2;
  16.         }
  17.     }
  18.    
  19.     $precioA.val(Math.round(precio));
  20. });
  #11 (permalink)  
Antiguo 14/06/2013, 19:50
Avatar de torturo  
Fecha de Ingreso: octubre-2003
Ubicación: Cozumel y Cancun
Mensajes: 61
Antigüedad: 20 años, 6 meses
Puntos: 1
Pregunta Respuesta: seleccionar todos los handlers

bueno chicos, después de estar batallando un laaaaargo rato con JS he logrado reducir de las 700 lineas (aprox) a 100
aquí les pongo el resultado... pero en este momento tengo errores y no sé que es lo que estoy haciendo mal... (o lo que estoy haciendo bien xD)

bueno les dejo la URI http://198.154.216.148/~etrcun/form/...hp?reinicio=si
y aparte el código...

agradeceré enormemente que me mencionen como corregir mi error...
el mismo modo les pregunto: ¿saben ustedes de algún programa que se pueda utilizar que me ayude a hacer debugs ?
Cita:
$(document).ready(function(){
$(".extras").click(function()
{
$('#pasaje').change(function(){
var canti= $(this).val();
if (canti>=0)
{
$('.extrasA').show();
for(var numero=0; numero<=canti;numero++)
{
$('.extrasA'+numero).hide();
}
}

});



var precio=0;
var tot = $('#numerotours').val()
for(var numero=0; numero<=canti;numero++)
{
for(num=1; num<=tot; num++)
{
if( $('#preciotour'+num).val()==== "$119" && $("#personaA"+num).val()=== 'nino')
{precio = 60 + precio; }
if( $('#preciotour'+num).val()==== "$119" && $("#personaA"+num).val()=== 'adulto')
{precio = 119 + precio; }
if( $('#preciotour'+num).val()===='$137' && $("#personaA"+num).val()=== "nino")
{precio += 70 ;}
if( $('#preciotour'+num).val()===='$137' && $("#personaA"+num).val()=== "adulto")
{precio += 137;}
if( $('#preciotour'+num).val()===='$49' && $("#personaA"+num).val()=== "nino")
{precio += 35 ;}
if( $('#preciotour'+num).val()===='$49' && $("#personaA"+num).val()=== "adulto")
{precio += 49;}
if( $('#preciotour'+num).val()===='$136' && $("#personaA"+num).val()=== "nino")
{precio += 75 ;}
if( $('#preciotour'+num).val()===='$136' && $("#personaA"+num).val()=== "adulto")
{precio += 136 ;}
if( $('#preciotour'+num).val()===='$85' && $("#personaA"+num).val()=== "nino")
{precio += 65 ;}
if( $('#preciotour'+num).val()===='$85' && $("#personaA"+num).val()=== "adulto")
{precio += 85 ;}
if( $('#preciotour'+num).val()===='$120' && $("#personaA"+num).val()=== "nino")
{precio += 90 ;}
if( $('#preciotour'+num).val()===='$120' && $("#personaA"+num).val()=== "adulto")
{precio += 120 ;}
if( $('#preciotour'+num).val()===='$105' && $("#personaA"+num).val()=== "nino")
{precio += 75 ;}
if( $('#preciotour'+num).val()===='$105' && $("#personaA"+num).val()=== "adulto")
{precio += 105 ;}
if( $('#preciotour'+num).val()===='$79' && $("#personaA"+num).val()=== "nino")
{precio += 59 ;}
if( $('#preciotour'+num).val()===='$79' && $("#personaA"+num).val()=== "adulto")
{precio += 79 ;}
if( $('#preciotour'+num).val()===='$109' && $("#personaA"+num).val()=== "nino")
{precio += 79 ;}
if( $('#preciotour'+num).val()===='$109' && $("#personaA"+num).val()=== "adulto")
{precio += 109 ;}
if( $('#preciotour'+num).val()===='$139' && $("#personaA"+num).val()=== "nino")
{precio += 109 ;}
if( $('#preciotour'+num).val()===='$139' && $("#personaA"+num).val()=== "adulto")
{precio += 139 ;}
if( $('#preciotour'+num).val()===='$169' && $("#personaA"+num).val()=== "nino")
{precio += 109 ;}
if( $('#preciotour'+num).val()===='$169' && $("#personaA"+num).val()=== "adulto")
{precio += 169 ;}
if( $('#preciotour'+num).val()===='$82' && $("#personaA"+num).val()=== "nino")
{precio += 41 ;}
if( $('#preciotour'+num).val()===='$82' && $("#personaA"+num).val()=== "adulto")
{precio += 82 ;}
if( $('#preciotour'+num).val()===='$92' && $("#personaA"+num).val()=== "nino")
{precio += 46 ;}
if( $('#preciotour'+num).val()===='$92' && $("#personaA"+num).val()=== "adulto")
{precio += 92 ;}
if( $('#preciotour'+num).val()===='$55' && $("#personaA"+num).val()=== "nino")
{precio += 40 ;}
if( $('#preciotour'+num).val()===='$55' && $("#personaA"+num).val()=== "adulto")
{precio += 55 ;}
if( $('#preciotour'+num).val()===='$139' && $("#personaA"+num).val()=== "nino" && $('#mitour').val()=== "Xplor")
{precio += 80 ;}
if( $('#preciotour'+num).val()===='$139' && $("#personaA"+num).val()=== "adulto" && $('#mitour').val()=== "Xplor")
{precio+num += 139 ;}

$('#precioA'"+num).val( precio );
}




});
$( "#checkin" ).datepicker({ dateFormat: "yy-mm-dd", changeYear: true });
$( "#checkout" ).datepicker({ dateFormat: "yy-mm-dd", changeYear: true });
$( "#date-1" ).datepicker({ dateFormat: "yy-mm-dd", changeYear: true });
$( "#date-2" ).datepicker({ dateFormat: "yy-mm-dd", changeYear: true });
$( "#date-3" ).datepicker({ dateFormat: "yy-mm-dd", changeYear: true });
$( "#date-4" ).datepicker({ dateFormat: "yy-mm-dd", changeYear: true });
$( "#date-5" ).datepicker({ dateFormat: "yy-mm-dd", changeYear: true });
$( "#date-6" ).datepicker({ dateFormat: "yy-mm-dd", changeYear: true });
$( "#date-7" ).datepicker({ dateFormat: "yy-mm-dd", changeYear: true });
$( "#date-8" ).datepicker({ dateFormat: "yy-mm-dd", changeYear: true });
$( "#date-9" ).datepicker({ dateFormat: "yy-mm-dd", changeYear: true });
$( "#date-10" ).datepicker({ dateFormat: "yy-mm-dd", changeYear: true });

$('.extrasA').hide();

if( <?= $k ?> <= 1 )
$('#reinicio').hide();


});
Gracias!! :D
  #12 (permalink)  
Antiguo 15/06/2013, 20:40
Avatar de torturo  
Fecha de Ingreso: octubre-2003
Ubicación: Cozumel y Cancun
Mensajes: 61
Antigüedad: 20 años, 6 meses
Puntos: 1
Respuesta: seleccionar todos los handlers

hola muchachos....
tengo la grata fortuna de decir que ya está funcionando lo que les dije
pero en realidad no funciona como esperaba... me di cuenta de que había que hacerles unas adecuacion es que lo dejo comentado para que funcione...
pero estoy solicitando su ayuda para que funciona bien...
les dejo el enlace para que puedan poner una supuesta reservación y que puedan ver que es lo que hace
cuando se ponen pasajeros extra ebería de poner el precio por cada pasajero extra en caso de que sea niño o adulto, pero no lo está poniendo...
con una supuesta reservación creo que será más que suficiente...

el enlace es:
http://198.154.216.148/~etrcun/index...e&id=5&catid=2

el JS con Jquery es:

$(document).ready(function()
{ canti = $('#pasaje').val()
$('#pasaje').change(function(){

if ( $('#pasaje').val() >= 0)
{
$('.extrasA').show();
for(var num=0; num<=99; num++)
{
$('.extrasA'+num).hide();
}
}
if ( $('#pasaje').val() >= 0)
{
$('.extrasA').show();
for(var numero=0; numero<=$('#pasaje').val(); numero++)
{
$('.extrasA'+numero).show();
}
}
});

$("body").on('click mouseover live keypress keyup keydown focusin focusout focus',function()
{

var tot = $('#numerotours').val();
var precio;
for(var numero=1; numero<= canti; numero++)
{
if( $('#preciotour'+num).val()== "$119" && $("#personaA"+num).val()== 'nino')
{precio += 60; }
if( $('#preciotour'+num).val()== "$119" && $("#personaA"+num).val()== 'adulto')
{precio=0; precio += 119; }
$('#precioA').val( precio );

}
});

});


por favor... ayuda

Etiquetas: javascript
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 05:46.