jilok
Usuario Novato
Usuario Novato

Hola peña!!

Estoy dando mis primeros pasos en javascript y, como todavía no controlo casi nada, me estoy desesperando con algunas cosas.

He introducido un comportamiento mouseover de forma q cuando los usuarios pasan por encima de la web se ejecuta una función que les da la opción de ir a lo más novedoso o de quedarse en la page principal.
Los problemas son los siguientes:
¿Cómo hago para que la función se ejecuta una única y maldita vez, y no de forma constante (machaca al usuario)?
¿Cómo hago para que cuando el usuario presione sobre cancelar le mantenga en la page principal, en la misma página, pero se detenga la ejecución de la función?(ahora los estoy mandando a otra page).

Este es el script:
function actualización(){
var x=window.confirm('\t Bienvenidos / as!! \n Última actualización: 02/01/2005 \n Pulsa en aceptar para ver las últimas novedades')
if (x)
open('Palermo.html')
else
open('Index2.html')
}

Perdonad mi ignorancia,
Muchas gracias por adelantado, saludos.

tunait
Usuario habitual
Usuario habitual

Buenas,

para que si le dan a cancelar no haga nadabasta con que omitas el else

function actualización(){
var x=window.confirm('\t Bienvenidos / as!! \n Última actualización: 02/01/2005 \n Pulsa en aceptar para ver las últimas novedades')
if (x){
open('Palermo.html')
}
}

Respecto a que tras la primera vez que se active la función se desactive ... muéstrame cómo estás realizando la llamada a la función.

Un saludo Divertido

jilok
Usuario Novato
Usuario Novato

Hola Tunait!!

Gracias por tu rápida respuesta.El tema del else lo metí para que la gente cuando diese cancelar no les saldría una y otra vez la función.

La llamada a la función la hago a través del manejador mouseover dentro de la siguiente etiqueta html:
body>
<table width="807" border="0" cellpadding="0" cellspacing="0" onmouseover="actualización()">

Muchas gracias por tu ayuda. Por cierto, ¿tienes algo que ver con la web "javascript.tunait.com"?,imagino que sí. Está muy bien, es una de las que estoy empleando para aprender.

Gracias otra vez!.

Saludos.

tunait
Usuario habitual
Usuario habitual

Hola de nuevo jilok,

El else se debería usar en el caso de que se quiera realizar otra acción distinta a la primera pero si lo que quieres es que no haga nada si no se acepta no es necesario especificar un else.

Para el tema de que se lance sólo una vez la función y después se desactive el evento puedes pedírselo agregando lo que te pongo en negritas

<table width="807" border="0" cellpadding="0" cellspacing="0" onmouseover="actualización(); this.onmouseover=function(){return false}">

Eso desactivará el evento tras la primera vez; eso sí, si se recarga la página volverá a lanzarse una vez.

Escrito originalmente por jilok
Por cierto, ¿tienes algo que ver con la web "javascript.tunait.com"?,imagino que sí. Está muy bien, es una de las que estoy empleando para aprender.

Qué bien, me alegro que te esté siendo útil para aprender Divertido (sí que es mía)

Un saludo Giño
jilok
Usuario Novato
Usuario Novato

Hola de nuevo!!!

Gracias por tu pronta respuesta. Ya lo he metido y funciona bien. Dos cosas:

-El "this" entiendo q se usa para referirte a la función q acabas de introducir.
-El "return false" se usa para desactivar funciones?, para cancelar cosas?

Muchísimas gracias!!!!

Saludos

tunait
Usuario habitual
Usuario habitual
Escrito originalmente por jilok

-El "this" entiendo q se usa para referirte a la función q acabas de introducir.

No, la sentencia this se refiere en cada momento en que es usado al elemento que lo está usando; en este caso, el elemento table, dado que está dentro del evento del tag table. "this" se refiere a "yo mismo".

Escrito originalmente por jilok

-El "return false" se usa para desactivar funciones?, para cancelar cosas?

return false devuelve el valor de falso cuando se espera que tras alguna acción se obtenga un valor de retorno booleano (verdadero o falso). La sentencia return indica un valor de retorno (a devolver), puede ser un valor booleano (true o false) o cualquier otro.
En el caso de la solución que te he puesto habría funcionado igual un return true que un return 'pepe' o incluso si no hubiera puesto nada. Básicamente lo que hemos hecho ha sido cambiar la acción en el vento mouseover para quitar la que tenía asignada en un principio. Te funcionaría igual con un this.onmouseover=function(){}



Un saludo! Divertido
ATENCIÓN: Este tema no tiene actividad desde hace más de 6 MESES,
te recomendamos abrir un nuevo tema en lugar de responder al actual
Opciones:
Ir al subforo:
Permisos:
TU NO PUEDES Escribir nuevos temas
TU NO PUEDES Responder a los temas
TU NO PUEDES Editar tus propios mensajes
TU NO PUEDES Borrar tus propios mensajes
Temas similares
No se han encontrado temas similares