JavaScript - Stop a un setInterval

   
Vista:

Stop a un setInterval

Publicado por Sam (95 intervenciones) el 23/09/2013 21:02:22
Hola buenas tengo un pequeño problema a ver si me pueden ayudar please.

Tengo un codigo javascript que me permite ejecutar una funcion cada 2 segundos.

Y funciona bien. Pero lo que quiero es que solo se ejecute una sola vez y no mas.

Utilizo serInterval. Se que existe setTimeout que lo podria hacer lo que necesito pero eso no me funciona.

POr una extraña razon si me vale setInterval , pero claro ejecutandose solo una vez. Y eso es lo que no se hacer , miren este es el codigo , gracias a todos de antemano.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<script>
        (function($){
            $(window).load(function(){
                /* custom scrollbar fn call */
 
        var refresh = setInterval(
            function()
            {
 
                $(".contenedor_opcs").mCustomScrollbar({
                    scrollButtons:{
                        enable:true
                    }
                });
 
            }, 2000);
 
            });
        })(jQuery);
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

Stop a un setInterval

Publicado por xve (1596 intervenciones) el 23/09/2013 22:02:04
Hola Sam, para tu ejemplo, creo que seria con:
1
clearInterval(refresh);

Coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Stop a un setInterval

Publicado por Sam (95 intervenciones) el 23/09/2013 22:24:45
Si eso lo he puesto pero no me sale , toi muy pegado en javascript y no doy con la tecla de donde ponerlo en el codigo ( ya he probado en varios lados y nada) :-(
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Stop a un setInterval

Publicado por Sam (95 intervenciones) el 23/09/2013 23:34:43
O si no me funcionara: ¿ donde podria poner en el codigo que he puesto un delay de 5000 ( 5 segundos).

Eso me bastaria. si no me funcionara lo del stop
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Stop a un setInterval

Publicado por xve (1596 intervenciones) el 24/09/2013 07:28:10
Hola Sam, muéstrame el código de como lo has puesto, y intento ayudarte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Stop a un setInterval

Publicado por Sam (95 intervenciones) el 24/09/2013 23:09:08
Hola xve, aunque te sorprenda eres parte de esto jejje te explico, te explico.

MIra, tengo un scrollbar personalizado con javascript y haciendo mención a jquery .

el tema esta en que hace mes y medio ( mas o menos) me ayudaste tu, con un código que era capaz de mediante con un fade hacer que aparecieran los distintos divs de opciones de menu con su correspondiente contenido.

remenber, el codigo era y es este:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<script>
 
        // inicialmente aparece la primera opcion marcada
        var ultimo=1;
        $(document).ready(function(){
            // evento que se ejecutara al seleccionar cualquier opcion del menu
            $(".dock-container2 div").click(function(){
                // obtenemos el nuevo id
                nuevo=$(this).attr("id");
                if(nuevo!=ultimo)
                {
                    // escondemos el ultimo id
                    $("#opc_"+ultimo).fadeOut(function(){
                        $("#"+ultimo).removeClass("seleccionado");
                        $("#"+nuevo).addClass("seleccionado");
                        // mostramos el nuevo id
                        $("#opc_"+nuevo).fadeIn();
                        ultimo=nuevo;
					});
				}
			});
		});
 
    </script>

Bien, dicho esto, en cada div ( opcion de menu) lleva un scrollbar personalizado y para ello utilizo este codigo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<script src="js/jquery-1.9.1.min.js"></script>
        <script src="js/jquery.mCustomScrollbar.concat.min.js"></script>
 
 
	<script>
 
		(function($){
			$(window).load(function(){
 
				$(".contenedor_opcs").mCustomScrollbar({
					scrollButtons:{
						enable:true
					}
				});
 
			});
		})(jQuery);
 
	</script>

El problema:

cuando se lo implemento a un div ( una opcion de menu), funciona bien.

pero cuando se lo implemento a dos divs, cuando hago click a la opcion de menu "A" me sale el scrollbar, y si acto seguido clico en opcion "B" no aparece.

y viceversa, si clico primero en opcion "B" si sale el scrollbar , y si clico despues en opcion "A" no aparece.


Asi que ( en mi no sabe javascript pense...) si fuerzo el codigo del scrollbar a ejecutarse mediante un setInterval lo mismo funciona, y asi fue aparecia en los dos lados el scrollbar cuando clicaba indistintamente en opcion A o B pero cada x segundos ( segun lo que le marcara de tiempo) aparecian 1,2,3,4,5,6,7,8 scrolbars!!!! asi hasta el infinito y no paraba asi que pense en hacerle un stop o a las malas un delay con mucho tiempo. Si, lo se parece un parche algo chapuza pero no se me ocurria otra cosa.


Otra cosa que pense como solucion fue:

que en el codigo que me hiciste hace mes y medio ( codigo del rimenber), implementarlo con este codigo del scrollbar para asi a la vez que se hace el fade de aparicion del div de una opcion de menu el mismo clic sirv apara que aparezca el scrollbar.

Pero eso lo intente pero no me sale.

LLevo con esto dos semanas y sicologicamente estoy k.o

Si me pudieras ayudar te estaria superagradecido xve.

Gracias de antemano.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Stop a un setInterval

Publicado por Sam (95 intervenciones) el 25/09/2013 19:10:33
Llevo toda la tarde con el setInterval, delay, y setTimeout. y he llegado a la casi conclusion que solo implementandolo en el codigo del fade que me pasaste ,xve; podre tener algo de esperanza en que funcione, defenitivamente necesito ayuda :-((((((((((((((((((((((((
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Stop a un setInterval

Publicado por Sam (95 intervenciones) el 26/09/2013 17:09:26
Xve, como lo ves, lo ves muy dificil?, si necesitas saber algo mas dímelo.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Stop a un setInterval

Publicado por xve (1596 intervenciones) el 26/09/2013 17:18:26
Hola Sam, gracias por tus comentarios, pero no entiendo muy bien que te esta pasando, supongo que es porque no veo el código html...
Nos lo podrías mostrar para poder probarlo?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Stop a un setInterval

Publicado por sam (95 intervenciones) el 26/09/2013 21:08:05
Xve, es que el codigo html, no es na de na, es decir el html esta bien es simple en ese aspecto.

Dicho de otro modo el javascript esta en el head y seguido el javascript que personaliza el scrollbar tambien en el head.

Logicamente este codigo que personaliza el scrollbar hace referencia a la class de un div que se encuentra en el body ( de forma oculta hide) y que se muestra cuando doy a un boton de menu ( con el codigo que me diste ( ese de ocultar-mostrar mediante fade).

Y ya esta. El problema es que como menu que es , no solo hay un div oculto, hay varios mas (uno por cada opcion de menu que hay), pero imagina que solo hay dos div ocultos de menu ( pa no liar mas la cosa) . Pues cuando clico en un boton de menu y aparece el div "A" le sale el scroll personalizado y cuando clico el div "B" no aparece el scrollbar, y viceversa.

es como si solo pudiera salir el scrollbar en una sola opcion pero no en las dos cuando pincho en una u otra. solo sale el scroll a la opcion que primero pinche.

Y yo quiero que pinche la opcion que pinche que aparezca el scrollbar personalizado al lado.

Pero como digo el codigo html es que no es nada . solo es el codigo que te he puesto , y colocado esta en su sitio head y body.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Stop a un setInterval

Publicado por xve (1596 intervenciones) el 27/09/2013 08:50:06
Hola Sam, aquí tienes un simple ejemplo que te muestra como mostrar y ocultar con jquery un par de div's
http://www.lawebdelprogramador.com/codigo/JQuery/2494-Mostrar_y_ocultar_elementos_utilizando_el_evento_hover_de_jquery.html

también tienes un ejemplo de como hacerlo utilizando únicamente estilos: http://www.lawebdelprogramador.com/codigo/CSS/2495-Mostrar_y_ocultar_un_elemento_utilizando_el_evento_hover_de_CSS.html

Coméntanos si te sirve, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Stop a un setInterval

Publicado por Sam (95 intervenciones) el 27/09/2013 15:05:10
xve, agracias por el codigo, lo he probado y funciona muy bien pero eso esta superado ya.

Debo haberme expresado mal. Simplificare el problema que tengo a ver si asi es mas claro de entender.

1. el javascript que me hace aparecer-desaparecer los divs, funciona bien, no es problema.

2. el javascript que personaliza el scroll con jquery, es donde tengo el problema.

ya que:

a) Si clico en el div "A", (por ejemplo),si aparece el scrollbar personalizado, y si acto seguido clico en el div "B" no aparacece el scrollbar personalizado.

b) y al a inversa si clico en div "B", aparece el scrollbar, y si acto seguido clico en el div "A" no aparacece el scrollbar personalizado.


Resumen:

Es como si solo admitiera el codigo que personaliza el scrollbar, el salir solo en un div (el div que yo quiera), pero eliminando la posibilidad de salir en los demas.

y yo necesito que clique el div que clique, vaya adjunto su correspondiente scrollbar personalizado.

Si el codigo es el que he puesto, pero le falta ponerle un detalle de codigo ( no se donde ) que haga lo que te he comentado.

¿mas claro ahora?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Stop a un setInterval

Publicado por Sam (95 intervenciones) el 30/09/2013 00:02:32
Pero aun asi si necesitas saber algo mas, preguntame lo que necesites saber.

Un saludo xve.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar