Se debe hacer clic dos veces en Javascript onclick para que se ejecute la función. Necesito que se ejecute con el primer clic, ese es mi problema. Busqué en Google y busqué durante 2 días sin encontrar una respuesta que funcionó o que entendí.

El código para JavaScript se puede encontrar aquí: http://enji.se/windows8/js/script .js

Y el sitio donde quiero que funcione: http://enji.se/windows8/

Estoy intentando crear un sitio web con aspecto de Windows 8. Solo se mostrará correctamente en Google Chrome y en una resolución superior a 1265x820 y será impresionante en resoluciones superiores a 1590x920

Gracias de antemano / enji

RESUELTO

1
Jeremy Karlsson 6 jun. 2011 a las 01:45

3 respuestas

La mejor respuesta

El problema está dentro de su controlador de clics boxBegin: el evento click se recibe y se pasa a su método correctamente en el primer clic, pero dentro de boxBegin está cambiando el comportamiento en el valor de box.style.display - en IE9, esto es inicialmente "", lo que activa su código de cierre en lugar del código abierto que desea.

Cambiar boxBegin a:

function boxBegin() {
    var box = document.getElementById('boxBegin');
    if (!box.style.display || box.style.display == "none") {
        box.style.display = "block";
    }
    else {
        box.style.display = "none";
    }
}
8
Dexter 5 jun. 2011 a las 21:54

Que yo sepa, ¿onclick registra un solo clic?

Si onclick requiere un doble clic, puede ser un problema específico del navegador.

También de la documentos MDC:

El evento click se genera cuando el usuario hace clic en un elemento. El evento click ocurrirá después de los eventos mousedown y mouseup.

También: caso de prueba simple @ JS Fiddle

-1
Sander 5 jun. 2011 a las 21:55

Busqué en Google esto cuando me encontré con el mismo problema.

Estaba comprobando si window.location.hash tenía un cierto valor, luego diseñé las pestañas de mi menú en consecuencia.

Para mí, la solución era tan simple como ejecutar una función de retraso de 10 milisegundos, que luego ejecutaba mis funciones principales.

El problema para mí vino de una secuencia de comandos que verificó un cambio en el exacto al mismo tiempo que se realizó el cambio, no antes, no después, sino al mismo tiempo. Esto me hizo tener que hacer doble clic para que vuelva a cambiar, y para que la función note el cambio por segunda vez.

Recuerde, siempre es más fácil ejecutar incluso un script de retraso de 5 milisegundos cuando las cosas no parecen registrar cambios. Esto me ha ayudado una y otra vez

1
Dillon 17 abr. 2012 a las 21:39