2010-06-09 8 views
0

J'essaie de créer du code qui trouve si un div existe, et si c'est le cas, alors il s'estompe lentement. J'ai ceci pour déterminer si oui ou non la div existeUtilisation de Jquery pour masquer lentement un div

 
    if($('#error').length != 0) 
{ 
    $('#error').hide(500); 
} 

Et qui fonctionne, mais seulement sur un rafraîchissement, je suis tenté de le mettre dans une minuterie comme ceci:

 
    var refreshId = setInterval(function() 
    { 
     if($('#error').length != 0) 
{ 
    $('#error').hide(500); 
} 
    }, 500); 

Mais ce n'est pas se débarrasser de l'innerHTML! J'ai un peu de code qui, en survol, modifie le innerHTML de l'erreur div pour que je puisse le remplir, mais pour une raison quelconque, cela ne fonctionne pas, un conseil serait utile!

Merci!

Répondre

6
$("#error").fadeOut(500); 

Mise à jour:

Si vous cherchez à vérifier l'existence:

var msg = $("#error"); 
if(msg.length) { 
    msg.fadeOut(500); 
} 

Si vous voulez vider:

$("#error").empty(); 
+1

Vous ne devriez jamais avoir besoin de vérifier l'existence comme ça ... –

+0

Oh, je suis d'accord. Cependant, dans sa déclaration, il vérifie l'existence qui peut ou peut ne pas être utilisé ailleurs dans son programme pour d'autres raisons. Je pensais que je pourrais aussi bien l'ajouter, en général, je recommande d'utiliser la première ligne. – sworoc

5

Si vous voulez juste retarder 500ms puis fondu, faites ceci:

$("#error").delay(500).fadeOut(); 

Pour vider également l'élément, fournir un rappel à .fadeOut() comme ceci:

$("#error").delay(500).fadeOut(function() { 
    $(this).html(''); 
}); 

Il n'y a pas besoin de vérifier .length, si un élément correspondant au sélecteur n'est pas présent, rien ne se passe :)

0

La div que vous essayez de masquer n'a probablement pas été chargée au moment de l'exécution de votre script. Essaye ça; il l'exécution jusqu'à ce que le reporter DOM est chargé:

$(document).ready(function() { 
    // put your code here 
}); 

C'est une bonne pratique lors de l'utilisation de jQuery de toute façon.

Référence: http://docs.jquery.com/Tutorials:Introducing_ $ (document) .ready()