Le script de redimensionnement ajoute un object, le fait encore et encore

J’ai le code suivant dans un fichier JavaScript:

$(document).ready(function() { detectscreen(); }); $(window).resize(function(){ detectscreen(); }); function windowWidth() { if(!window.innerWidth) { // user is being a git, using ie return document.documentElement.clientWidth; } else { return window.innerWidth; }} function detectscreen() { if (windowWidth()>1280) { $('body').append('
'); }}

Fondamentalement, il ajoute un object à la fin du document si la largeur est inférieure à 1280 pixels. Toutefois, il l’ajoute à chaque fois que la page est redimensionnée.

Je ne pense pas que je puisse utiliser la fonction once , car elle ne l’exécuterait qu’une fois, puis la prochaine fois qu’elle sera redimensionnée, elle sera morte. Tout ce que je peux faire?

NOTE : En fait, je DOIS que cela soit vérifié sur le redimensionnement de la page, mais l’effet est que cela se produit encore et encore.

 if (windowWidth()>1280 && !$('gearsfloat')) { $('body').append('
'); }

Le travail ci-dessus (par Jason) ne fonctionne pas , mais il ne sera pas supprimé s’il reçoit moins de 1280. Y a-t-il quelque chose que je puisse faire?

Gardez une trace de savoir si l’élément existe ou non, et ajoutez / supprimez-le lorsque la condition change. De cette façon, vous ne l’appendez qu’une seule fois, il sera supprimé quand il ne devrait pas y en avoir et vous ne faites rien d’inutile d’append ou de supprimer:

 var gearsExists = false; function detectscreen() { var shouldExist = windowWidth() > 1280; if (shouldExist != gearsExists) { if (shouldExist) { $('body').append('
'); } else { $('#gearsfloat').remove(); } gearsExists = shouldExist; } }
 if (windowWidth()>1280 && !$('gearsfloat')) { $('body').append('
'); }

Vérifier si l’élément existe déjà en premier?

si vous ne voulez pas que la fonction soit appelée lorsque la fenêtre est redimensionnée, pourquoi liez-vous la fonction de redimensionnement?

la fonction de préparation de document ne sera-t-elle pas toujours appelée avant la fonction de redimensionnement, de sorte que vous aurez la garantie d’append votre élément?