Si j'ai beaucoup de fonctions au démarrage, doivent-elles toutes être regroupées dans un seul et même endroit ?
$(document).ready(function() {
ou puis-je avoir plusieurs déclarations de ce type ?
Si j'ai beaucoup de fonctions au démarrage, doivent-elles toutes être regroupées dans un seul et même endroit ?
$(document).ready(function() {
ou puis-je avoir plusieurs déclarations de ce type ?
Je pense que la meilleure façon de procéder est de mettre le commutateur sur les fonctions nommées. (Consultez cet overflow pour en savoir plus sur ce sujet) . De cette façon, vous pouvez les appeler à partir d'un seul événement.
Comme ça :
function firstFunction() {
console.log("first");
}
function secondFunction() {
console.log("second");
}
function thirdFunction() {
console.log("third");
}
De cette façon, vous pouvez les charger dans une seule fonction prête.
jQuery(document).on('ready', function(){
firstFunction();
secondFunction();
thirdFunction();
}) ;
Le résultat sera affiché dans votre console.log :
first
second
third
De cette façon, vous pouvez réutiliser les fonctions pour d'autres événements.
jQuery(window).on('resize',function(){
secondFunction();
});
Oui, vous pouvez.
Les sections multiples prêtes pour le document sont particulièrement utiles si vous avez d'autres modules qui utilisent la même page. Avec l'ancien window.onload=func
chaque fois que vous spécifiez une fonction à appeler, elle remplace l'ancienne.
Désormais, toutes les fonctions spécifiées sont mises en file d'attente/empilées (quelqu'un peut-il confirmer ?), quelle que soit la section de préparation des documents dans laquelle elles sont spécifiées.
Oui, c'est parfaitement acceptable, mais évitez de le faire sans raison. Par exemple, je l'ai utilisé pour déclarer les règles globales du site séparément des pages individuelles lorsque mes fichiers javascript étaient générés dynamiquement, mais si vous le faites encore et encore, cela rendra la lecture difficile.
De même, vous ne pouvez pas accéder à certaines méthodes à partir d'une autre jQuery(function(){});
appelez donc c'est une autre raison pour laquelle vous ne voulez pas faire ça.
Avec l'ancien window.onload
mais vous remplacerez l'ancienne à chaque fois que vous spécifierez une fonction.
C'est légal, mais cela entraîne parfois un comportement indésirable. Par exemple, j'ai utilisé la bibliothèque MagicSuggest et ajouté deux entrées MagicSuggest dans une page de mon projet. J'ai utilisé des fonctions document ready distinctes pour chaque initialisation des entrées. La toute première initialisation de l'entrée a fonctionné, mais pas la deuxième, et sans donner d'erreur, la deuxième entrée ne s'est pas affichée. Donc, je recommande toujours d'utiliser une seule fonction prête à l'emploi.
Vous pouvez même imbriquer des fonctions prêtes à l'emploi dans des fichiers html inclus. Voici un exemple utilisant jquery :
Fichier : test_main.html
<!DOCTYPE html>
<html lang="en">
<head>
<script src="jquery-1.10.2.min.js"></script>
</head>
<body>
<div id="main-container">
<h1>test_main.html</h1>
</div>
<script>
$(document).ready( function()
{
console.log( 'test_main.html READY' );
$("#main-container").load("test_embed.html");
} );
</script>
</body>
</html>
Fichier : test_embed.html
<h1>test_embed.html</h1>
<script>
$(document).ready( function()
{
console.log( 'test_embed.html READY' );
} );
</script>
Sortie de console :
test_main.html READY test_main.html:15
test_embed.html READY (program):4
Le navigateur montre :
test_embed.html
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
1 votes
Nécessaire principalement lorsque j'ai besoin de charger plusieurs fichiers js où chacun contient $(document).ready() ; fonction
0 votes
@leora cette question a été posée lors d'un entretien :D Merci