Foros del Web » Programando para Internet » Jquery »

Reducir, factorizar dos funciones Jquery

Estas en el tema de Reducir, factorizar dos funciones Jquery en el foro de Jquery en Foros del Web. Buenas noches a todos, Tengo el siguiente código que simplemente llama al li anterior o al siguiente en un slider. // Next button $('.next').bind('click',function(e){ var ...
  #1 (permalink)  
Antiguo 13/09/2012, 17:47
 
Fecha de Ingreso: febrero-2010
Mensajes: 52
Antigüedad: 14 años, 9 meses
Puntos: 3
Pregunta Reducir, factorizar dos funciones Jquery

Buenas noches a todos,
Tengo el siguiente código que simplemente llama al li anterior o al siguiente en un slider.

// Next button
$('.next').bind('click',function(e){
var $this = $(this);
$('#navigation li:nth-child(' + (parseInt(current)+1) + ') a').click();
$(this).blur();
e.preventDefault();
});
//previous button
$('.prev').bind('click',function(e){
var $this = $(this);
$('#navigation li:nth-child(' + (parseInt(current)-1) + ') a').click();
$(this).blur();
e.preventDefault();
});

Dado que la es la misma función, salvo el elemento pulsado y donde pone (parseInt(current)-1) que en next es +1
Me gustaría saber como debería hacer para usar ambos botones en una única función.

Esto es lo que se me ha ocurrido. Espero vuestras sugerencias/correcciones.

Crearía una clase "navegador" para ambos botones

$('.navegador').bind('click',function(e){
var $this = $(this);
if(($('navegador).('next'))
$('#navigation li:nth-child(' + (parseInt(current)+1) + ') a').click();
else
$('#navigation li:nth-child(' + (parseInt(current)-1) + ') a').click();
$(this).blur();
e.preventDefault();
});

Gracias anticipadas
  #2 (permalink)  
Antiguo 14/09/2012, 17:50
Avatar de Franz1628  
Fecha de Ingreso: marzo-2007
Ubicación: Lima - Perú
Mensajes: 145
Antigüedad: 17 años, 8 meses
Puntos: 26
Respuesta: Reducir, factorizar dos funciones Jquery

Código HTML:
Ver original
  1. <div class="prev flecha"></div>
  2. <div class="next flecha"></div>

Código Javascript:
Ver original
  1. $('.flecha').click(function(){
  2.     if($(this).hasClass('next')){
  3.         //Lo que tengas que hacersi hace click en next
  4.     }
  5.     else{
  6.         //Lo que tengas que hacersi hace click en prev
  7.     }
  8. });
__________________
En mi Blog puedes ver articulos javascript y más...
@Franz1628
  #3 (permalink)  
Antiguo 18/09/2012, 06:24
 
Fecha de Ingreso: febrero-2010
Mensajes: 52
Antigüedad: 14 años, 9 meses
Puntos: 3
Respuesta: Reducir, factorizar dos funciones Jquery

Gracias por la respuesta, no funciona. En mi caso tengo:
Código HTML:
Ver original
  1. <button class="prev navegador" type="submit">Volver</button>
  2. <button class="next navegador" type="submit">Siguiente</button>

Y el js que he puesto es el siguiente:
Código Javascript:
Ver original
  1. $('.navegador').click(function(){  
  2.         if($(this).hasClass('next')){
  3. //Lo que tengas que hacersi hace click en next
  4.             var $this = $(this);
  5.             $('#navigation li:nth-child(' + (parseInt(current)+1) + ') a').click();
  6.         }
  7.         else{
  8.             //Lo que tengas que hacersi hace click en prev
  9.             var $this = $(this);
  10.             $('#navigation li:nth-child(' + (parseInt(current)-1) + ') a').click();
  11.         }
  12.         $(this).blur();
  13.         e.preventDefault();
  14.     });
Puede que el problema sea que uso button en lugar de divs?

Etiquetas: Ninguno
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 08:51.