Foros del Web » Programando para Internet » Javascript »

do while y que alert, solo se repita una vez

Estas en el tema de do while y que alert, solo se repita una vez en el foro de Javascript en Foros del Web. Hola muy buenas. Estoy haciendo practicas javascript propias para aprender, y lo que se me va ocuerriendo lo intento hacer. Ahora por ejemplo quiero que ...
  #1 (permalink)  
Antiguo 27/03/2011, 06:54
Avatar de gachon  
Fecha de Ingreso: septiembre-2004
Ubicación: En Google
Mensajes: 462
Antigüedad: 19 años, 7 meses
Puntos: 3
do while y que alert, solo se repita una vez

Hola muy buenas.
Estoy haciendo practicas javascript propias para aprender, y lo que se me va ocuerriendo lo intento hacer.
Ahora por ejemplo quiero que al pasar sobre el objeto div muestre una ventana alert. pero solo quiero que se repita una vez, para eso estoy utilizando un do while

y creo que es bastante logico no?
este es el codigo
Código Javascript:
Ver original
  1. <script type="text/javascript">
  2.         function ventana(valor){
  3.             var valor;
  4.             do {
  5.             alert("Has pasado por la imagen");
  6.            
  7.             }while(valor!=1);
  8.            
  9.         }
  10.     </script>
y este es div

<div id="slide" onmouseover="ventana(1)">
que hago mal, creo que esta bien planteado

muchas gracias y saludos
  #2 (permalink)  
Antiguo 27/03/2011, 07:31
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: do while y que alert, solo se repita una vez

buenas...

tu planteamiento es erroneo. en realidad, me parece que confundistes el concepto del bucle do/while. do/while interpreta el codigo al menos una vez aunque la condicion de while evalue a falso.
Código:
do{
alert('una sola vez');
}while(false);
pero eso no significa que las siguientes veces que se interprete el bucle no volvera a evaluarse. seguira evaluandose de forma normal pero con un solo ciclo. analiza el siguiente ejemplo.
Código:
var bar = 0;
function foo(){
do{
// imprime en la consola el valor de bar antes de incrementarla ;
console.log(bar++);
}while(bar < 5);
}
¿que sucede la primera vez que invocas la funcion foo? ¿que sucede la segunda y demas veces que se invoca la funcion? debes ver la consola de javascript para apreciar el resultado.

en fin, lo que te corresponde ni siquiera requiere de un bucle. lo que requieres es de una variable y un condicional if. la variable servira como un flag que indicara si ya se evaluo al menos una vez el codigo. y la condicion determinara el estado de ese flag. intentalo!

__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 27/03/2011, 08:07
Avatar de gachon  
Fecha de Ingreso: septiembre-2004
Ubicación: En Google
Mensajes: 462
Antigüedad: 19 años, 7 meses
Puntos: 3
Respuesta: do while y que alert, solo se repita una vez

Muchas gracias, entiendo porque no sirve el do while.
Pero la verdad no se como deir que se ejecute una vez solo el codigo.
Podrias ayudarme por favor., ya que esto me puede ayudar para todos los eventos y entenderlo.

POr ciento el firefox me da el siguiente error de la funcion foo
window.loadFirebugConsole is not a function

Tambien me gustaria tu recomendacion, por ejemplo yo estoy intentando harcer todo lo que se me ocurre con javascript, para aprender, para luego hacer lo mismo con jquery, es decir, lo mismo que he hecho con javascript hacerlo cono jquery, mi pregunta seria si no debo perder el tiempo y ir directamente con jquery??, o seguir este metodo

Última edición por gachon; 27/03/2011 a las 08:15
  #4 (permalink)  
Antiguo 27/03/2011, 08:21
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: do while y que alert, solo se repita una vez

creo entender cual es tu problema. la respuesta de zerokilled es correcta, pero le falta un matiz para serte valida para el caso que te ocupa. tu pretensión, y corrigueme si me equivoco, es que puedes colocar tantas veces como quieras el ratón encima del div, pero sólo se levantará el alert la primera vez. has de usar una variable global
Cita:
var cont = 0;
function fnc() {
if (cont == 0) {alert('Has pasado por la imagen');}
cont++;
}
  #5 (permalink)  
Antiguo 27/03/2011, 08:36
Avatar de gachon  
Fecha de Ingreso: septiembre-2004
Ubicación: En Google
Mensajes: 462
Antigüedad: 19 años, 7 meses
Puntos: 3
Respuesta: do while y que alert, solo se repita una vez

Muchas Gracias Isabel y tambien como no ha zerokilled, me funciona el codigo de Isabel y ahora que lo veo lo entiendo, pero me gustaria saber si esta la unica forma, es decir si javascript tiene ya una funcion para saber si se ha hecho click una vez, si se ha pasdo por el raton un vez,

bueno solo eso y bueno si alguien se atreve a darme clases javascript online, pagadas claro, pero me refiero a clases de forma comoda para los dos, me ponen ejeccicios me lo mandan por correo y luego yo intento hacerlo y pregunto mis dudas.
Perdon si he puesto esto en mal lugar. Lo borro ahora mismo si es necesario.
Saludos y gracias
  #6 (permalink)  
Antiguo 27/03/2011, 08:58
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: do while y que alert, solo se repita una vez

Cita:
Iniciado por gachon Ver Mensaje
Muchas Gracias Isabel y tambien como no ha zerokilled, me funciona el codigo de Isabel y ahora que lo veo lo entiendo, pero me gustaria saber si esta la unica forma, es decir si javascript tiene ya una funcion para saber si se ha hecho click una vez, si se ha pasdo por el raton un vez,
javascript no tiene, puede que algún frameworks si que la tenga, vete tu a saber. pero mi recomendación, como recién empiezas en esto, es que no uses frameworks

Cita:
Iniciado por gachon Ver Mensaje
bueno solo eso y bueno si alguien se atreve a darme clases javascript online, pagadas claro, pero me refiero a clases de forma comoda para los dos, me ponen ejeccicios me lo mandan por correo y luego yo intento hacerlo y pregunto mis dudas.
Perdon si he puesto esto en mal lugar. Lo borro ahora mismo si es necesario.
Saludos y gracias
tienes tutoriales muy buenos y que empiezan por lo mas básico, por ejemplo este. de cualquier modo si quieres que alguien te de clases online, puedes postear en el foro de ofertas de empleo
  #7 (permalink)  
Antiguo 27/03/2011, 10:20
 
Fecha de Ingreso: noviembre-2005
Mensajes: 426
Antigüedad: 18 años, 5 meses
Puntos: 87
Respuesta: do while y que alert, solo se repita una vez

Cita:
Iniciado por IsaBelM Ver Mensaje
javascript no tiene, puede que algún frameworks si que la tenga, vete tu a saber. pero mi recomendación, como recién empiezas en esto, es que no uses frameworks


tienes tutoriales muy buenos y que empiezan por lo mas básico, por ejemplo este. de cualquier modo si quieres que alguien te de clases online, puedes postear en el foro de ofertas de empleo
Mi recomendacion es todo lo contrario, como apenas estas empezando usa frameworks.

No sabes lo agradecido que estaria si alguien me hubiera dicho que existia jQuery apenas comenze en esto de javascript; por un tiempo la palabra "framework" me sonaba a funciones extremadamente avanzadas muy complicadas de manejar.... cuando era todo lo contrario.

Aqui la version jQuery:

Código:
$("#slide").mouseover(function(){ 
	alert("Has pasado por la imagen")
	$(this).unbind();
})
  #8 (permalink)  
Antiguo 27/03/2011, 10:29
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: do while y que alert, solo se repita una vez

solo un comentario, sepase que utilizar un framework no contribuye a un mejor entendimiento del lenguaje en si. si tu fin es aprender javascript, no recomiendo comenzar por framework. por el contrario, si solo te interesa solucionar problemas, quizas un framework sea lo mas recomendable. sea como sea, tienes que leer la documentacion de uno u otro porque de lo contrario como sabras que hace cada cosa.

@inkarc, ¿que diferencia tiene ese codigo al siguiente? visualmente no le veo ninguna diferencia.
Código:
document.querySelector("#slide").onmouseover = function(){
alert('el mensaje');
this.onmouseover = null;
};
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #9 (permalink)  
Antiguo 27/03/2011, 11:12
 
Fecha de Ingreso: noviembre-2005
Mensajes: 426
Antigüedad: 18 años, 5 meses
Puntos: 87
Respuesta: do while y que alert, solo se repita una vez

Cita:
querySelector("#slide")
No funciona en IE7 que todavia es bastante usado... (lamentablemente)

De todas esas inconsistencias se ocupa jquery

De funcionaldid la verdad para este ejemplo la diferencia no estan marcada; pero la diferencia en posibilidades de expansión es exagerademente signficativa.

Por ejemplo si quisiera que saliera el alert solo 1 vez cuando pasa el mouse por ALGUNO de un grupo de objectos:

Código Javascript:
Ver original
  1. var seleccion = $(".padre")
  2. seleccion.mouseover(function(){
  3.     alert("ya")
  4.     seleccion.unbind();
  5. })

y para cambiar ha hacer multiples selecciones no tiene por que cambiar de "querySelector" a "querySelectorAll", simplemente separando con una coma los elementos ya queda:

Cita:
var seleccion = $(".padre, #slide, table td")
  #10 (permalink)  
Antiguo 27/03/2011, 11:20
Avatar de gachon  
Fecha de Ingreso: septiembre-2004
Ubicación: En Google
Mensajes: 462
Antigüedad: 19 años, 7 meses
Puntos: 3
Respuesta: do while y que alert, solo se repita una vez

InKarC muchas gracias. Eso esta claro que jquery es mucho mejor de utilizar, que el propio javascript, es mas,, es lo que voy a utilizar. Pero la cuestion es si aprender javascript a pelo te ha ayudado a abordar problemas con jquery??
  #11 (permalink)  
Antiguo 27/03/2011, 14:17
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: do while y que alert, solo se repita una vez

Cita:
Iniciado por InKarC Ver Mensaje
No funciona en IE7 que todavia es bastante usado... (lamentablemente)
bueno, esto es como si dices que ie6 aún está muy implantado. pues es irrefutable (19.76%) pero casi el 100% de los usuarios de ese navegador están en China. así que programar para ese navegador, no tiene mucho sentido. lo mismo pasa ie7. en cuanto a usar frameworks, estoy con zerokilled . no llego a entender estas arduas polémicas que te traes con el uso o no de frameworks
  #12 (permalink)  
Antiguo 27/03/2011, 14:17
 
Fecha de Ingreso: noviembre-2005
Mensajes: 426
Antigüedad: 18 años, 5 meses
Puntos: 87
Respuesta: do while y que alert, solo se repita una vez

La verdad no sabria decirte por que primero aprendi javascript y despues me encontre con jQuery... principalmente por que mucho tiempo no lo conocia.

Pero ha diferencia de lo que hacen muchas personas aqui no hay que ver jquery como algo separado de javascript; por que pues, no lo es; es como una ayuda para desarrollar un javascript mas facil de entender y mejorar.

Si es bueno que conoscas algunas funciones y metodos basicos javascript (.replace, .setTimeOut entre otros) y conoscas como funcionan las variables y arrays en javascript; pero para desarrollar en si basandote en jQuery te ahorras muchos dolores de cabeza.

Código Javascript:
Ver original
  1. var jquery_es = $(".javascript_facil").not(".estres")
  #13 (permalink)  
Antiguo 27/03/2011, 14:22
 
Fecha de Ingreso: noviembre-2005
Mensajes: 426
Antigüedad: 18 años, 5 meses
Puntos: 87
Respuesta: do while y que alert, solo se repita una vez

Cita:
no llego a entender estas arduas polémicas que te traes con el uso o no de frameworks
Yo tampoco, la superioridad de jQuery (los otros frameworks no so tan buenos) es tan clara que no se que hay que discutir.

Solo como ejercicio practico, intenta hacer esto (es una llamada ajax) con javascript puro y que sirva en todos los navegadores (incluyendo ie6) . Para hacerlo bien bien con javascript puro necesitas mas de 60 lineas.

Cita:
$('#result').load('ajax/test.html #contenedor', function() {
alert('Cargado');
});
  #14 (permalink)  
Antiguo 27/03/2011, 14:23
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: do while y que alert, solo se repita una vez

Cita:
Iniciado por IsaBelM Ver Mensaje
no llego a entender estas arduas polémicas que te traes con el uso o no de frameworks
Ya somos 3 (:
Cita:
Iniciado por InKarC
Para hacerlo bien bien con javascript puro necesitas mas de 60 lineas.
Pero las líneas que necesitas para poder usar sólo 3 digo yo que serán como pocas 60.
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #15 (permalink)  
Antiguo 27/03/2011, 14:27
 
Fecha de Ingreso: noviembre-2005
Mensajes: 426
Antigüedad: 18 años, 5 meses
Puntos: 87
Respuesta: do while y que alert, solo se repita una vez

Ya comenzaron a discutir por los milisengudos... les comento que las conexiones telefonicas de 56KB de velocidad ya no existen, ni siquiera en china.

Y para .load son mucho menos de 60, ya que los desarrolladores de jQuery saben un poquito mas que ustedes (y que yo claro) y pueden optimizar el codigo a niveles exagerados.
  #16 (permalink)  
Antiguo 27/03/2011, 14:29
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: do while y que alert, solo se repita una vez

Cita:
Iniciado por _cronos2 Ver Mensaje
Ya somos 3 (:

Pero las líneas que necesitas para poder usar sólo 3 digo yo que serán como pocas 60.
60?? tienes que cargar toda la librería, 20Kb
  #17 (permalink)  
Antiguo 27/03/2011, 14:40
 
Fecha de Ingreso: noviembre-2005
Mensajes: 426
Antigüedad: 18 años, 5 meses
Puntos: 87
Respuesta: do while y que alert, solo se repita una vez

UFFFFFF!! 20KB!!!! la decima parte de un segundo!!!! Esi intorelable!!! No podemos permitir eso!!!

--- Sin tener en cuenta que se puede llamar desde la libreria de google lo que quiere decir que el usuario probablemente ya la tenga en su propio computador y no la necesite cargar nuevamente


jQuery no solo les ahorra dolores de cabeza, les ahorra VIDA ... como es eso? sencillo, por ejemplo: hubo un codigo que desarrolle para una pagina y me demore 2 semanas gastandole como 2 horas diarias...

Con javascript no tengo ni la mas minima duda que me hubiera tomado al menos 2 meses gastandole ese mismo tiempo diariamente.

PD: Para los que no la capten: la vida solo es una cantidad limitada de segundos, asi ahorrar Tiempo = Mas vida; oh! me puse filosofico lol

Etiquetas: alerta
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 14:34.