2011-06-16 8 views
34

Con el navegador Windows Phone 7, cuando el usuario hace clic en un enlace, se sombrea con un rectángulo gris durante aproximadamente 0,5 segundos. Esto está bien en general, sin embargo, si tiene un comportamiento de página dinámico, por ejemplo, al hacer clic en un enlace se actualiza el DOM para que el enlace ya no esté visible, el rectángulo gris opaco permanece en la pantalla una vez que el enlace se ha ido.Navegador Windows Phone 7 - Desactive el sombreado gris cuando se hace clic en los enlaces

¡Esto se ve bastante horrible!

¿Alguien sabe cómo deshabilitar este efecto?

+0

No sé cómo deshabilitar esto, pero puede establecer un temporizador en Javascript y actualizar el DOM después de 0.5s :) (supongo que está tratando de modificar su propio sitio web) – Praetorian

+0

No - Estoy viendo si puedo crear aplicaciones HTML/JS complejas. Entonces, no, esa no es una opción. Gracias de todos modos! – ColinE

+0

Lo dije más como una broma que como una sugerencia seria de todos modos :) Por cierto, me gusta tu serie de publicaciones de Metro in Motion. – Praetorian

Respuesta

2

La siguiente solución parece funcionar (al menos en el emulador). El sombreado gris necesita las dimensiones del elemento cliqueado. Si el elemento tiene un ancho cero, entonces no hay sombreado, mientras que al hacer clic en los elementos secundarios todavía se dispara el controlador de clics del elemento.

<div id="myLink" style="float:left"> 
    <img src="images/myLinkIcon.png" style="position:absolute" /> 
    <span style="position:absolute;left:50px">Click here</span> 
</div> 

<script> 
    // jQuery 
    $(function() { 
     $("#myLink").click(function() { 
      console.log("clicked on myLink"); 
     }); 
    }); 
</script> 

El div puede flotar o posicionarse completamente. Los elementos secundarios deben estar absolutamente posicionados, de lo contrario, el div adquiere un ancho.

1

Estos trabajos tratan usando jQuery

$(id|classname|document).live('click',function(){ 
    //write code that needs to executed in this area 
}); 

He utilizado este en mi proyecto. Funciona bien para ocultar el tono de gris, evitar el uso de función en línea en las páginas html ... usando jQuery esta función sólo funciona cuando se asigna contenido interno a ella .. por ejemplo

<div id="d1"><div id="d2"></div></div> 

que pueda esto para div interior como esto

$('#d2").live('click',function(){changecolor();changebackground();}); 

disfrutar de codificación ........ jQuery

+1

Funciona muy bien en general, pero en los popovers "en vivo" hace que los eventos de clic sean llamados en la parte posterior del popover. Los mecanismos para detener la propagación no funcionan junto con el comando "en vivo" de JQuery. Ver nota adicional de http://api.jquery.com/event.stopPropagation/ –

19

Añadir una etiqueta meta en la que la cabeza de la sección que ofrece el archivo html.

<meta name="msapplication-tap-highlight" content="no" /> 

Debería funcionar.

+1

¡Eso funcionó seguramente! ¡aclamaciones! – Eggie

+1

no funciona para el teléfono con Windows 7 IE9 – Sheetal

-1

La solución es hacer 2 DIV. La div principal no tiene ancho/alto y este DIV es un evento de disparo y DIV en su interior tiene tamaño.

He hecho con mis amigos un ejemplo de trabajo dentro del proyecto de phonegap. Enlace de verificación: https://github.com/sellupp/cordova-for-windows-phone-7-antidepressant Usted está buscando: 1. área gris en el grifo

También estamos frente a un problema con el tiempo de respuesta baja. Compruébelo;)