2011-04-08 23 views
14

This jsFiddle example funciona en Google Chrome, pero en Internet Explorer, cuando se hace clic en el ícono de cerrar, el navegador elimina el elemento emergente pero el texto 'ninguno' aparece en la ventana del navegador. Por favor explique cómo puedo resolver este problema.pantalla: ninguna; muestra 'ninguno' en el navegador

HTML:

<div id="popup"> 
    <!-- Close popup link --> 
    <a href="javascript:document.getElementById('popup').style.display='none';">X</a> 
</div> 
+0

¿sucede en ambos navegadores que mencionas? – jackJoe

+0

Lo mismo ocurre en Firefox 4.0 – mauris

+0

En Google Chrome funciona muy bien y elimina el elemento sin mostrar el texto 'ninguno' en el navegador. En IE, sin embargo, muestra el texto 'ninguno' en la ventana del navegador y elimina el elemento. –

Respuesta

21

Uso onclick para el controlador de eventos en lugar de href http://jsfiddle.net/AE2X3/4/

<div id="popup"> 
     <a href="#" onclick="document.getElementById('popup').style.display='none';return false;" id="close_popup"></a> 
     <p>This is a pop-up.</p> 
</div> 
+2

Estoy aceptando su respuesta. Ahora me doy cuenta de que JavaScript pertenece a los eventos de JavaScript, y el atributo href es para las URL ¡gracias! –

4

Esto funciona:

<div id="popup"> 
     <a href="javascript:void(0);" onclick="this.parentElement.style.display='none';" id="close_popup"></a> 
     <p>This is a pop-up.</p> 
</div> 

Demo

9

Creo que lo que está sucediendo es que la tarea está devolviendo su resultado, y el navegador está mostrando eso. Si agrega void(0) al final de su JavaScript, no se mostrará.

Déjenme agregar que amit_g's answer es más correcto que el mío. Señala correctamente que este tipo de comportamiento pertenece al controlador OnClick, no en el atributo href.

+3

+1 Ahora lo entiendo :). Es por eso que amo este trabajo, aprendes algo nuevo todos los días. – kapa

+0

Es cierto. Consulte http://jsfiddle.net/7VGeU/ – Adam

+0

¡Excelente! ¡Gracias! –

Cuestiones relacionadas