Une différence entre ces deux instructions?JQuery: Quelle est la différence entre ces deux instructions?
$(document).ready(function() {
// Code
});
$(function() {
// Code
});
Une différence entre ces deux instructions?JQuery: Quelle est la différence entre ces deux instructions?
$(document).ready(function() {
// Code
});
$(function() {
// Code
});
Dans sa résolution, il n'y a pas de différence, ils sont équivalents
à partir du code source pertinente
jQuery = window.jQuery = window.$ = function(selector, context) {
// The jQuery object is actually just the init constructor 'enhanced'
return new jQuery.fn.init(selector, context);
}
jQuery.fn = jQuery.prototype = {
init: function(selector, context) {
/* .... irrelevant code.... */
// HANDLE: $(function)
// Shortcut for document ready
else if (jQuery.isFunction(selector))
return jQuery(document).ready(selector);
}
}
+1 - J'étais trop fainéant pour chercher ça. :) – ChaosPandion
Il m'est juste arrivé de l'avoir ouvert devant moi :) –
Équivalent en effet, et à l'heure actuelle, mais ils ne sont pas exactement les mêmes (évidemment). On demande explicitement qu'une fonction soit liée en tant que gestionnaire d'événement à l'événement "ready", et l'autre est une requête moins spécifique pour exécuter quelque chose au moment "ready", sans la fixer explicitement sur l'événement "ready". – Pointy
-vous dire:
$(function()
{
/* ... */
});
Ils sont équivalents dans jQuery. Ce dernier est un raccourci pour le premier.
Si vous voulez dire
$(document).ready(function() {/* code here */});
et
$(function() {/* code here */});
alors il n'y a pas de différence entre les deux. Ce dernier est juste un raccourci qui fait la même chose que le premier.
Dans tous les cas, ces deux instructions font la même chose. En interne cependant le second appellera le premier.
Je pense qu'il est important de souligner que la ligne jQuery officielle est que la seconde syntaxe:
$(function() {
// code here
});
est préféré. Pourquoi? Parce qu'il prévoit la possibilité que M. Resig & Co. proposera une nouvelle façon brillante d'effectuer l'initialisation en charge, ce qui est bien mieux que d'utiliser l'événement «prêt». S'ils le font, et que vous utilisez la (deuxième) façon de faire plus simple, alors votre code bénéficiera immédiatement de l'amélioration sans avoir besoin de changer quoi que ce soit. Si vous utilisez la liaison explicite à l'événement "ready", vous vous en tenez à cette approche jusqu'à ce que vous la changiez.
Je pense qu'il est très probable que si une meilleure façon d'exécuter le code lorsque le DOM a été chargé est trouvée, l'équipe choisirait de changer le code dans l'événement ready et déléguerait toujours '$ (function() {}); à lui. –
Veuillez être plus précis. – Gumbo
Euh ... ils sont écrits différemment? –
+1 Bonne et valide question de quelqu'un qui a vu les deux et n'a pas compris la différence (ou son absence). – user113716