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?