2010-08-03 16 views
39

Por favor alguien puede decirme lo que estoy haciendo mal:jQuery no fadeIn trabajo

estilo:

.warning{border: 1px solid #F0AAAA; background:#FFBABA; color: #C90000;} 

marcado:

<p class="warning">A successful authorization already exists. 
        Further authorizations are not allowed at this time.</p> 

guión:

$().ready(function() { 
    alert($(".warning").html());  // WORKS 
    $(".warning").fadeIn(4000);  // DOESN'T WORK 
}); 
+0

¿Qué espera fadeIn() para hacer? Si .warning no está visible, fadeIn lo hará visible, pero de acuerdo con su CSS no hay ninguna razón para esperar que esté oculto. –

+0

Mi caso era que la advertencia div se mostraría de todos modos cuando se cargara la página. Solo quería desvanecerlo lentamente una vez que el usuario había aterrizado en esa página. Así que no quería configurar la pantalla: ninguna en la hoja de estilos. Pero como Nick sugirió a continuación, .hide(). FadeIn() era exactamente lo que necesitaba para que funcionara en este escenario. –

Respuesta

73

A menos que el elemento esté oculto, no se producirá ningún fundido, lo necesitará mething así:

$(".warning").hide().fadeIn(4000); 

You can give it a try here, también $() está en desuso en 1.4+, debe utilizar $(document) o la versión más corta, así:

$(function() { 
    $(".warning").hide().fadeIn(4000); 
}); 

La alternativa es dar al elemento un display: none inicialmente pero esto se rompe para los usuarios con discapacidad JS, o si se producen errores de JavaScript que impiden el fundido, por lo que es posible que desee alejarse de este enfoque.

+0

¡Eso era exactamente lo que estaba mal! ¡Gracias! –

+0

exactamente lo que estaba buscando ... impresionante ... – NiK

+0

Exactamente !!! @nick carver esto es lo que quería – Shrivallabh

8

agrega display:none a tu código CSS.

.warning{border: 1px solid #F0AAAA; background:#FFBABA; color: #C90000;display:none} 
+0

¡Gracias por la respuesta! Estoy evitando esta solución debido a las trampas señaladas en la respuesta anterior. –

1

Tendería a pensar que desea que algún evento se administre para la fadin. véase el ejemplo de trabajo aquí: http://jsfiddle.net/hPHPn/

Por lo tanto:

$(document).ready(function(){ 
    $(".warning").hide();// hide it initially 
    $('#unhideit').click(function(){ 
     $(".warning").fadeIn(4000);       }); 
}); 

un mecanismo simple marcado:

<p class="warning">A successful authorization already exists 
    for this Quote ID. Further authorizations are not allowed at this time.</p> 
<input type="button" id="unhideit" value="clickme" /> 
1

he hecho recientemente lo mismo en mi solicitud. En la parte superior de mi documento html tengo:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> 
<script type="text/javascript" src="advtemp3jquery.js"></script> 

La parte que dice src="advtemp3jquery.js se refiere a mi archivo externo .js. Me parece más ordenado mantener el código en un archivo externo.

El script realiza lo siguiente:

$(document).ready(function() { 
    $('.header1,.header2').fadeIn('4000'); 
});