Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] Condicional entre funciones

Estas en el tema de Condicional entre funciones en el foro de Jquery en Foros del Web. Lo primero decir que soy inexperto en el tema Tengo dos botones Cita: <div id="seafood-mas"><img src="http://www.forosdelweb.com/f179/img/mas-der.png" alt="mas-der" width="47" height="38" border="0" onclick="seafoodbajar()" style="cursor:pointer" /></div> <div id="contact-mas"><img ...
  #1 (permalink)  
Antiguo 16/06/2013, 15:01
Avatar de juanote  
Fecha de Ingreso: enero-2003
Ubicación: Valencia
Mensajes: 285
Antigüedad: 21 años, 2 meses
Puntos: 10
Condicional entre funciones

Lo primero decir que soy inexperto en el tema

Tengo dos botones
Cita:
<div id="seafood-mas"><img src="http://www.forosdelweb.com/f179/img/mas-der.png" alt="mas-der" width="47" height="38" border="0" onclick="seafoodbajar()" style="cursor:pointer" /></div>
<div id="contact-mas"><img src="http://www.forosdelweb.com/f179/img/mas-inf.png" alt="mas-izq" width="47" height="38" border="0" onclick="contactbajar(1)" style="cursor:pointer" /></div>
Cada boton llama a una funcion
Cita:
<script type="text/javascript">
function seafoodbajar() {
$(document).ready(function(){
$("#seafood-mas").hide();
$("#seafood-caja").slideDown(700);
if(variableGlobal == 1)
{$("#contact-caja").hide( "slide", {direction: "down"}, 500 );}
});
}
function contactbajar(resultado) {
$(document).ready(function(){
$("#contact-mas").hide();
$("#contact-caja").show( "slide", {direction: "down"}, 700 );
var variableGlobal = resultado;
});
}
</script>
La cuestion es que cuando pincho sobre la imagen de contactar contactbajar();, me gustaría darle un valor a una variable.
En este caso le he dado valor=1
Me gustaría que cuando ejecuto la función de seafoodbajar(), Esa variable sea un condicional para hacer el slide que necesito.
__________________
Desarrollo Web Valencia - SEO y maquetación web

Última edición por juanote; 16/06/2013 a las 15:16
  #2 (permalink)  
Antiguo 17/06/2013, 20:29
Avatar de fhederico  
Fecha de Ingreso: agosto-2009
Mensajes: 247
Antigüedad: 14 años, 8 meses
Puntos: 23
Respuesta: Condicional entre funciones

Si entendi bien, lo unico que tienes que hacer es declarar la variable fuera de tus funciones, al principio por ejemplo

Código:
<script type="text/javascript">

var variableGlobal = 0;

function seafoodbajar() {
if(variableGlobal == 1)
//todo lo demas
Has probado asi?

Saludos
  #3 (permalink)  
Antiguo 17/06/2013, 20:54
Avatar de ZoroRoronoa  
Fecha de Ingreso: marzo-2011
Ubicación: California, USA
Mensajes: 824
Antigüedad: 13 años
Puntos: 116
Respuesta: Condicional entre funciones

Lo mejor seria usar un auxiliar (o variable Global)
Mira ya colgaste el Hilo anterior y te lo dejo en este hilo Colega.

Si lo que deseas, es tener SOLO un slide abierto a la vez.

Facil, A los 5 slides ponles una clase.
agregas los 5 slides a un array con la funcion find().

Al hacer el evento CLICK, cierras todos los SLIDES, y abres el que se pulso, para saber cual fue el que se pulso, usa la funcion index(), o eq() [eq() no la he usado]

**Uffs... me tomo media hora.. te cuento la funciones.
-clases que distinguen si los slides se abren hacia arriba o hacia abajo.
-si pulsas boton ABRE, si pulsas de nuevo boton CIERRA
-si abres un slide, y despues abres todo, el anterior lo cierra automaticamente. (Solo un slide puede estar abierto a la VEZ).

te dejo un EJEMPLO con 4 Slides:
code HTML:
Código HTML:
Ver original
  1. <!--
  2. NO OLVIDES AGREGAR EN EL HEAD
  3. LAS LIBRERIAS jQuery Y jQueryUI
  4. -->
  5.  
  6. <div id="uno">
  7.     <div class="boton">boton 1</div>
  8.     <div id="slide1" class="igual divtop">DIV 1<br/>ABAJO hacia ARRIBA</div>
  9. </div>
  10. <div id="dos">
  11.     <div class="boton">boton 2</div>
  12.     <div id="slide2" class="igual divtop">DIV 2<br/>ABAJO hacia ARRIBA</div>
  13. </div>
  14. <div id="tres">
  15.     <div class="boton">boton 3</div>
  16.     <div id="slide3" class="igual divbot">DIV 3<br/>ARRIBA hacia ABAJO</div>
  17. </div>
  18. <div id="cuatro">
  19.     <div class="boton">boton 4</div>
  20.     <div id="slide4" class="igual divbot">DIV 4<br/>ARRIBA hacia ABAJO</div>
  21. </div>

code CSS:
Código CSS:
Ver original
  1. #uno, #dos, #tres, #cuatro {position:absolute; width:200px; height:300px; background:#DDD;}
  2. #uno {top:10px; left:10px;}
  3. #dos {top:10px; right:10px;}
  4. #tres {top:320px; right:40px;}
  5. #cuatro {top:340px; left:30px;}
  6. .boton {position:absolute; bottom:0; right:0; background:green; width:50px; height:50px; cursor:pointer;}
  7. #slide1, #slide2, #slide3, #slide4 { display:none; float:left; width:149px; height:299px; background:blue;}

code jQuery:
Código Javascript:
Ver original
  1. $(document).ready(function() {
  2.     var aux = -1; //iniciamos la variable que nos ayudara a saber si ya se pincho el boton
  3.     var array = $(this).find(".igual"); //obtenemos todos los Slide GRACIAS a la clase igual
  4.    
  5.     //AQUI DEFINIMOS LAS FUNCIONES DE LOS EFECTOS SLIDE SHOW SLIDE HIDE
  6.     //para ello nos apoyamos de clases como divtop, divbot
  7.     //Que significan hacia donde cierra el SLIDE (arriba o abajo)
  8.    
  9.     $(".boton").click(function() {
  10.         cualSlide = $(this).index(".boton"); //saber que boton es, y asi saber cual slide es
  11.        
  12.         clase = $(array[cualSlide]).attr("class").split(" ");
  13.        
  14.         if(aux != cualSlide) {
  15.         if(clase[1] == "divtop") {
  16.             $(".divtop").hide("slide",{direction:"down"},2000);
  17.             $(".divbot").hide("slide",{direction:"up"},2000);
  18.             $(array[cualSlide]).show("slide",{direction:"down"},2000);
  19.         } else if((clase[1]) == "divbot") {
  20.             $(".divtop").hide("slide",{direction:"down"},2000);
  21.             $(".divbot").hide("slide",{direction:"up"},2000);
  22.             $(array[cualSlide]).show("slide",{direction:"up"},2000);
  23.         }
  24.         aux = cualSlide;
  25.         } else if(aux == cualSlide) {
  26.             if(clase[1] == "divtop") {
  27.             $(".divtop").hide("slide",{direction:"down"},2000);
  28.         } else if((clase[1]) == "divbot") {
  29.             $(".divbot").hide("slide",{direction:"up"},2000);
  30.         }
  31.         aux = -1;
  32.         }
  33.     });
  34. });


Aqui en vivo el Ejemplo:
http://kurosaki.host22.com/jqueryui/UI-practica1.html

Deberia cobrarte? Me he venido a un ciberCafe a pastearte el code… Jaaja, son $2 USD Jaaja!! Broma broma
Saludos.
__________________
Programador jQuery & PHP
  #4 (permalink)  
Antiguo 18/06/2013, 08:13
Avatar de juanote  
Fecha de Ingreso: enero-2003
Ubicación: Valencia
Mensajes: 285
Antigüedad: 21 años, 2 meses
Puntos: 10
Respuesta: Condicional entre funciones

Zoro que currada
Si estuviera cerca te invitaba a una cerveza en el ciber

No se si me valdrá para mi codigo

Yo creo que con convertir una variable local a global me bastaría

O se puede enviar una variabel dessde una iamgen al hacer click????
__________________
Desarrollo Web Valencia - SEO y maquetación web
  #5 (permalink)  
Antiguo 18/06/2013, 09:06
Avatar de ZoroRoronoa  
Fecha de Ingreso: marzo-2011
Ubicación: California, USA
Mensajes: 824
Antigüedad: 13 años
Puntos: 116
Respuesta: Condicional entre funciones

Javascript:
usa el evento onClick sobre <img> y llamas a tu funcion enviando el valor de la variable Global.

PD: Nose si la etiqueta <img> admita esta funcion, no suelo combinar ni meter js en las etiquetas, asi que no te puedo dar seguridad al 100% de mi respuesta
__________________
Programador jQuery & PHP
  #6 (permalink)  
Antiguo 18/06/2013, 09:23
Avatar de juanote  
Fecha de Ingreso: enero-2003
Ubicación: Valencia
Mensajes: 285
Antigüedad: 21 años, 2 meses
Puntos: 10
Respuesta: Condicional entre funciones

esp es lo que estoy haciendo, en principio no funciona

<div id="contact-mas"><img src="../img/mas-inf.png" alt="mas-izq" width="47" height="38" border="0" onclick="contactbajar(1); variableGlobal='1';" style="cursor:pointer" /></div>
__________________
Desarrollo Web Valencia - SEO y maquetación web
  #7 (permalink)  
Antiguo 18/06/2013, 09:52
Avatar de juanote  
Fecha de Ingreso: enero-2003
Ubicación: Valencia
Mensajes: 285
Antigüedad: 21 años, 2 meses
Puntos: 10
Respuesta: Condicional entre funciones

Solucionado poniendo la variable en la imagen
__________________
Desarrollo Web Valencia - SEO y maquetación web
  #8 (permalink)  
Antiguo 18/06/2013, 09:52
Avatar de ZoroRoronoa  
Fecha de Ingreso: marzo-2011
Ubicación: California, USA
Mensajes: 824
Antigüedad: 13 años
Puntos: 116
Respuesta: Condicional entre funciones

En img solo pon
onclick="contactbajar(1);"

y en jquery, extraes el valor (hablando del 1), y se lo das a la variableGlobal, asi:

contactbajar(vglob){
miVarGlobal = vglob;
}


MI CONTADOR DE MENSAJES TIENE UN NUMERO FEO, he llegado al post # 666 :-O
__________________
Programador jQuery & PHP

Etiquetas: condicional, funciones
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 13:49.