poster pour la première fois ici, me demandant simplement ce que je fais de mal dans ce petit script jquery que j'ai écrit pour un fichier html externe contenant mon élément de menu. Cela fonctionne sur le redimensionnement mais pas sur la charge. J'ai essayé une $ (window) .load () autonome; événement aussi et rien ne semble fonctionner. Je suis nouveau sur jQuery et je connais juste les choses à faire et à ne pas encore faire!
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
jQuery(document).ready(function($) {
var vwidth = $(window).width();
var vheight = $(window).height();
var menu = $('#menu_container');
$( window ).on('load resize', function() {
if (vwidth >= 1000) {
menu.css('zoom', '1');
} else {
menu.css('zoom', '0.8');
}
});
});
3 Réponses :
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
Il y a deux problèmes ici. Un déjà expliqué par @Mr. Polywhirl.
L'autre est le fait que l'événement DOM ready s'exécutera APRÈS l'événement window.load . Cela signifie qu'au moment où jQuery (document) .ready exécute $ (window) .load a déjà eu lieu, donc l'enregistrement d'événement pour window.load code> c'est un peu tard. Essayez plutôt ceci ... //this is essentially the same as jQuery(document).ready
$(function(){
toggleZoom();
$(window).on("resize", function(){
toggleZoom();
});
});
function toggleZoom(){
var vwidth = $(window).width();
//this isn't needed in this snippet
//var vheight = $(window).height();
var menu = $('#menu_container');
if (vwidth >= 1000) {
menu.css('zoom', '1');
} else {
menu.css('zoom', '0.8');
}
}
Hé merci, cela m'a beaucoup aidé, j'ai pu faire fonctionner la fonction de chargement de fenêtre et merci de m'avoir rappelé de faire quelque chose comme ça une fonction. Merci également à @Mr. Polywhirl pour la petite astuce, je suppose que c'est pourquoi il y a un problème à apprendre la programmation en ligne rien qu'en lisant les forums et la documentation.
@NelsonMcCull, pas de soucis mon pote, content d'avoir aidé
L'utilisation correcte de la fonction jQuery ready () est:
jQuery(document).ready(function(){
//The code you want to execute.
});
Pour plus d'informations, consultez:
partagez votre code html quel élément appeler une fonction onload