2010-01-22 8 views
1

En this video il y a un bout de code qui ressemble à ceci:Que fait la fonction jQuery() dans jQuery?

if (jQuery) {jQuery(function() { 
    // ... 
})} 

Je ne l'ai jamais vu la fonction jQuery() avant (là encore, je ne suis pas un utilisateur averti jQuery), que fait-il ? Est-il livré par défaut avec jQuery ou est-il spécifique à IxEdit? Depuis l'extrait $(window).load() habituel est manquant et le code est un peu similaire, je devine que c'est un raccourci/alias:

$(window).load(function() { 
    // ... 
)} 

Ai-je raison? Aussi, quelle est cette variable jQuery? Qu'est-ce que ça tient? Et pourquoi le vérifie-t-il?

Répondre

6

$() est un alias pour jQuery(), définie comme:

// Expose jQuery to the global object 
window.jQuery = window.$ = jQuery; 

http://code.jquery.com/jquery-1.4.js

il existe un cas spécial défini lors de l'appel avec le premier argument $() ou jQuery() étant une fonction:

// HANDLE: $(function) 
// Shortcut for document ready 
} else if (jQuery.isFunction(selector)) { 
    return rootjQuery.ready(selector); 
} 

parfois $ peuvent entrer en conflit avec d'autres bibliothèques (comme prototype) qui définissent la même fonction, donc si vous appelez

jQuery.noConflict(); 

il supprimera l'alias $, la mise en revenir à la valeur d'origine trouvée, essentiellement:

window.$ = _$; 
+0

Ainsi, le premier extrait ne vérifie pas si la page est déjà complètement chargée? Aussi, pourquoi utilise-t-il l'instruction 'if (jQuery)'? –

+0

yah exactement exact .. genre de rusé, window.jquery est mis à var jquery locale qui est une fonction (var jQuery = fonction (sélecteur, contexte) {...). si (jQuery) vérifie si la fonction est définie, vous pouvez aussi dire si ('jQuery' dans la fenêtre) ... si var pas init'd – jspcal

+0

Je suis désolé mais je suis encore un peu confus, comment écrirais-tu? '$ (document) .load (function()' et '$ (document) .ready (function()' utilisant la fonction 'jQuery()'? –

2

La fonction $ est un alias pour la fonction jQuery. Donc, ils sont les mêmes.

Si vous utilisez jQuery en mode noConflict, il n'y a jQuery() fonction

1

Je pense qu'il est le même que l'utilisation de $() mais vous utilisez jQuery() pour la compatibilité avec d'autres libs qui utilisent également ($)

jQuery peut être une variable qui stocke une fonction. Je suppose que si est de vérifier si elle n'est pas défini ou quelque chose comme ça

3
jQuery(function() 

est le même que

$(document).ready(function() 

if(jQuery) 

est un chèque si le fichier jquery.js a été chargé ou non.

Il y a une autre façon de vérifier

if (typeof jQuery == 'undefined') 
{ 
    //jQuery has not been loaded 
} 
+0

Merci! Donc 'jQuery()' va-t-il aussi vérifier le statut du document 'ready'? –