javascript - À propos de l'utilisation de $(function(){}) dans jquery.
typecho
typecho 2017-06-26 10:51:00
0
5
1057

Chers héros, je suis novice en js. J'étais récemment en train de concevoir un site Web simple et j'ai copié du code jq du site Web.
J'ai trouvé que le début de certains segments de code est $(function(){...}), alors je l'écrirai à l'intérieur de $(function(){...}) dans ce format, comme $(function( ){$('#denglu_submit').click(function(){...
Mais j'ai aussi vu qu'il n'y a pas de $(function(){}) dans certains extraits de code, mais directement $('#denglu_submit') .click(function(){...etc., je l'ai testé, et les deux semblent fonctionner. Donc je ne sais pas quelle est la différence ?

typecho
typecho

Following the voice in heart.

répondre à tous(5)
过去多啦不再A梦
  1. Si vous mettez les deux méthodes, html页面结构下面的话,写不写$(function(){})都行,都是等到页面加载完后执行(别忘了html sera analysé et chargé de haut en bas).

  2. Mais si vous les mettez tous dans la structure de la page, la différence sera grande. $(function(){})为网页加载完后执行,没有$(function(){})直接写的话是按html页面从上到下的顺序执行,也就是是说如果jsLe temps d'exécution du code est relativement long (comme l'obtention d'une grande quantité de données), alors le contenu html suivant ne sera chargé et affiché qu'après. le js est exécuté. C'est évidemment déraisonnable. Vous devez d'abord laisser le contenu HTML s'afficher.

  3. Ainsi, lorsque nous écrivons du code, nous ajoutons généralement $(function(){})为好,这样就算jsS'il y a une erreur dans le code ou si son exécution prend beaucoup de temps, le contenu principal de la page peut être chargé sans affecter la navigation de l'utilisateur sur la page Web. Et il est préférable de placer le code sous la structure de la page pour garantir que la page est chargée complètement (après tout, le HTML est analysé et chargé dans l'ordre de haut en bas).


Autres petites connaissances $(function(){})为网页加载完后执行,好像和原生js的window.onload = function() {}La même chose, mais il y a une différence. Le premier est exécuté après le chargement de la structure (hors images), et le second est exécuté après le chargement de la structure (y compris les images).

女神的闺蜜爱上我

$(function(){}) Il s'agit de la logique interne qui est exécutée après le chargement du js et le chargement de la structure dom.

$('#denglu_submit').click(function(){...}) Ceci est exécuté après le chargement de js.

阿神

$(function(){...})Le contenu ici est d'attendre que les nœuds de page ou les fichiers référencés soient chargés avant de s'exécuter. Cela garantit que les nœuds de page ont été chargés et que les nœuds correspondant aux sélecteurs sont également disponibles.

$('#denglu_submit').click(function(){...}),这个是等加载到这里的时候就执行了,执行的时候并不知道#denglu_submit有没有加载到页面上。如果页面没有这个节点,那么对应的事件是没有反应的。
你可以试着把这两段段代码都放到headExécutez-le à l'intérieur et vous connaîtrez la différence !

phpcn_u1582

Connaissez-vous window.onload ? Ceci est exécuté plus tôt que onload

给我你的怀抱

Tout d'abord, laissez-moi répondre. $ est le nom de la fonction. Par exemple :

$ = function() {
alert('good');
}
$();

De cette façon, définissez une fonction appelée $ et exécutez-la ; vous pouvez la tester vous-même
Ensuite

 ;
$(function() {})

Ici, un paramètre est passé dans la fonction $. Ce paramètre est une fonction anonyme (une fonction sans nom, également appelée fermeture
Alors supposons

) ;
$ = function(fun) {
fun();
}
$(function() { alert("good"); } );

L'exécution finale est la même que ci-dessus, mais elle sera plus flexible. Vous pouvez y passer n'importe quelle fonction que vous souhaitez exécuter pour exécution ;
Et ici :

$('#denglu_submit').click(function(){alert("good");});

En fait, une chaîne '#denglu_submit' est transmise à la méthode $, puis une fonction anonyme est transmise à la fonction click dans $. La conception entière de la fonction est similaire à ceci :

.
$ = function(a) {
    alert(a);
    return $;
}
$.click = function(fun) { fun(); }; 
$("hello").click(function() {alert("fun")});

Bien sûr, jquery est nettement plus compliqué.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal