Foros del Web » Programando para Internet » Jquery »

Hacer algo después de una función

Estas en el tema de Hacer algo después de una función en el foro de Jquery en Foros del Web. Buenas tengo el siguiente inconveniente usando jQuery 1.9.1. Lo que estoy tratando de hacer es que me muestre algo después de cargar. Por ejemplo: Código: ...
  #1 (permalink)  
Antiguo 29/08/2016, 13:02
 
Fecha de Ingreso: junio-2008
Mensajes: 43
Antigüedad: 15 años, 9 meses
Puntos: 0
Hacer algo después de una función

Buenas tengo el siguiente inconveniente usando jQuery 1.9.1.

Lo que estoy tratando de hacer es que me muestre algo después de cargar. Por ejemplo:

Código:
  

      function progress(percent, $element) {
      var progressBarWidth = percent * $element.width() / 100;
      $element.find('div').animate({ width: progressBarWidth }, 3600).html();
      $('#fondo').css({"backgroundImage": "url(assets/Loading.jpg)",
                       "backgroundSize" : "cover"
                      });
      }


      function clickMe(){
        alert("hola");
      }

      progress(100, $('#progressBar'));
      clickMe();
Pero esto me carga todo al mismo tiempo cuando debería ser secuencial.
Ya probé con .then y .done pero al parecer ya no funcionan en esta versión o los estoy usando mal. Me gustaría ejecutar la función después de que termine la otra función sín usar condicionales (ya que no puedo usar un width absoluto).

Muchas gracias!!!
  #2 (permalink)  
Antiguo 30/08/2016, 05:36
 
Fecha de Ingreso: enero-2014
Ubicación: Navarra
Mensajes: 94
Antigüedad: 10 años, 3 meses
Puntos: 18
Respuesta: Hacer algo después de una función

Hola.

No se si te valfrá, pero prueba así:

Código Javascript:
Ver original
  1. function progress(percent, $element) {
  2.       var progressBarWidth = percent * $element.width() / 100;
  3.       $element.find('div').animate({ width: progressBarWidth }, 3600).html();
  4.       $('#fondo').css({"backgroundImage": "url(assets/Loading.jpg)",
  5.                        "backgroundSize" : "cover"
  6.                       });
  7.       }
  8.  
  9.       function clickMe($element, $texto){
  10.         $element.find('div').promise().done(function() {
  11.         alert($texto);
  12.         });        
  13.       }
  14.  
  15.       progress(100, $('#progressBar'));
  16.       clickMe($('#progressBar'),'Hola');
  #3 (permalink)  
Antiguo 30/08/2016, 07:39
 
Fecha de Ingreso: junio-2008
Mensajes: 43
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Hacer algo después de una función

Genio!!! Funcionó

Igual estuve viendo que las funciones se pueden poner separadas ya que las llamas una después de la otra con esto.

Código:
clickMe($('#progressBar'),'Hola');
Lo que tengo que averiguar es que hace promise, no lo conocía. Gracias!!!
  #4 (permalink)  
Antiguo 30/08/2016, 09:39
 
Fecha de Ingreso: enero-2014
Ubicación: Navarra
Mensajes: 94
Antigüedad: 10 años, 3 meses
Puntos: 18
Respuesta: Hacer algo después de una función

Hola.

La funcion promise() es un objeto cuya unica funcion es decir si se ha realizado o no
Yo lo use en una funcion ajax que se llamaba despues de un ajax asincrono y me estaba volviendo loco.

saludos
  #5 (permalink)  
Antiguo 30/08/2016, 10:14
 
Fecha de Ingreso: junio-2008
Mensajes: 43
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Hacer algo después de una función

Sí, justo lo busqué en el manual de jQuery, hay algunas funciones como then() que ya no funcionan y no encontraba una parecida. :(
  #6 (permalink)  
Antiguo 30/08/2016, 13:25
 
Fecha de Ingreso: julio-2015
Mensajes: 85
Antigüedad: 8 años, 8 meses
Puntos: 4
Respuesta: Hacer algo después de una función

Para lo que quieres lo mejor son las promesas, puede resultar un pelin lioso al principio pero luego veras que es muy facil y que pueden llegar a ser muy utiles

Etiquetas: funcion
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 02:22.