Je le code suivant dans un document JavaScript jQuery en cours d'exécution sur une page (CECI EST COURANT):problème bloc de code Cyclique
$(window).resize(function(){
detectscreen();
});
function windowWidth() {
if(!window.innerWidth) {
// user is being a git, using ie
return document.documentElement.clientWidth;
} else {
return window.innerWidth;
}}
gearsExists = false;
function detectscreen() {
shouldExist = windowWidth() >= 1300;
if (shouldExist != gearsExists) {
if (shouldExist) {
$('body').append('<div id="gearsfloat"><a href="#" id="clickGoTop"></a></div>');
$('#clickGoTop').fadeTo(0,0);
$('#clickGoTop').hover(function() {
$(this).stop().fadeTo(500,1);
}, function() {
$(this).stop().fadeTo(500,0);
});
} else {
$('#gearsfloat').remove();
$('#clickGoTop').remove();
}
gearsExists = shouldExist;
}
}
Ce code est de mon previous question, ramifié ici simplement parce que je pense qu'il est lié.
Le problème ici est que le début est bien: il est affiché. Toutefois, si l'écran est redimensionné à moins de 1300, il disparaît; encore bon.
Maintenant, je fais à nouveau la fenêtre plus grande que 1300. Soudain, l'élément d'engrenage est doublé. Un autre écran squish et largen et BAM, il y en a trois maintenant. Faites ceci plusieurs fois et cela s'additionne rapidement.
Comment puis-je arrêter ceci?
Pourquoi la longueur de gearsFload vérifie-t-elle si le bloc est vide? En outre, vous devriez utiliser l'opérateur == dans cette condition. En outre, comme je l'ai écrit précédemment, vous ne devez pas supprimer explicitement le lien #clickGoTop car il sera automatiquement supprimé lorsque vous supprimez gearsFloat div. – SolutionYogi
Ah, des oopsies, j'ai accidentellement laissé ça là. En attendant, je suis très conscient du fait qu'il faut utiliser l'unité centrale pour l'enlever chaque fois qu'elle est redimensionnée et l'ajouter ensuite. –
Tout ce que je peux faire à ce sujet ou est-ce juste le meilleur moyen? –