JQuery Voir
J'ai le code suivant:
$('#loading').css("visibility", "visible");
$('#loading').show();
Pour une raison inconnue pour moi quand j'utilise le CSS ça marche!
Mais quand j'utilise .afficher ();
Ça ne marche pas. Nous vous remercions de nous aider. Je suis un nouveau à JQuery.
Je vous Remercie.
Modifier:
<div class="footerOrder" id="loading" style="visibility:visible;">
<img src="../utils/loadingExistenz.gif" width="32" height="32" border="0" />
</div>
Essayé ceci:
<div class="footerOrder" id="loading" style="display:block;">
Puis:
$('#loading').hide();
Et toujours pas aller pour une raison quelconque!
EDIT: chose étrange, c'est que cela fonctionne pour toutes les autres DIVs!!
6 réponses
Utiliser display:none;
au lieu de visibilité
Cela fonctionne très bien pour moi
$(function(){
$("#aLink2").click(function(){
$('#loading').show();
});
});
Échantillon de Travail : http://jsfiddle.net/HShHg/6/
Les .show()
et .hide()
de JQuery fonctionnent uniquement sur la propriété CSS display
, pas sur la propriété visibility
. Je viens de vérifier le code source jQuery 1.7 et vérifié que c'est le cas.
Donc, {[5] } serait apparié avec .show()
.
Si vous voulez changer la visibilité, vous devez simplement changer le css directement ou créer vos propres méthodes hideV()
et showV()
pour le faire pour vous:
jQuery.fn.showV = function() {
this.css('visibility', 'visible');
}
jQuery.fn.hideV = function() {
this.css('visibility', 'hidden');
}
Selon les docs:
.show() This is roughly equivalent to calling .css('display', 'block')
Donc, si vous avez foiré avec le visibility
, cela ne vous aidera pas.
Ce que vous devez faire est de toujours cacher avec .css('display', 'none')
ou de .hide()
Je viens de trouver ceci utile docs :
Les éléments avec visibility: hidden ou opacity: 0 sont considérés comme visibles, car ils consomment toujours de l'espace dans la mise en page.
Je m'en tiendrais à mettre visibility: hidden;
sur l'élément, puis utiliser .css("visibility", "visible");
montrer précisément parce qu'il prend toujours place sur la page.
Cela évitera les pages nerveux pendant le chargement et le flash redouté de contenu Invisible (FOUC ).
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$('div#sidebar-collapses').click(function(){
if ( $("#title").is(":hidden") ) {
$("#title").show();
} else if ( $("#title").is(":visible") ) {
$("#title").hide();
}
})
});
</script>
</head>
<body>
<div class="sidebar-collapse" style="" id="sidebar-collapses">
<a href="#" class="sidebar-collapse-icon with-animation">
Test
<i class="menu"></i>
</a>
</div>
<a href="mysite_url" id="title" style="display:none;"> <br> My Site Name </a>
</body>
</html>