Appel de fonction jQuery à partir de JavaScript
J'ai quelques jQuery code:
$(function(){
function someFunc(){
/*do something*/
};
.............
});
Et maintenant, je veux appeler someFunc à partir de JavaScript comme ci-dessous:
function test(){
$.fn.someFunc();
}
Mais il ne fonctionne pas! J'ai vu un article comment appeler la fonction en jquery à partir de javascript. Est-il possible?
someFunc
est juste une fonction définie à l'intérieur d'une autre fonction... il n'a rien à voir avec jQuery.OriginalL'auteur Nolesh | 2012-03-20
Vous devez vous connecter pour publier un commentaire.
Juste la définition d'une fonction à l'intérieur de la fermeture (fonction) vous passez dans
$()
ne rien faire pour le mettre sur le jQueryfn
objet. Pour ce faire, vous devez faire explicitement:Généralement, vous ne serait pas ce faire, dans un rappel sur
$()
, vous auriez du le faire plus tôt. Les plugins de ce faire pour ajouter des fonctionnalités, ce qui devrait déjà être présent avant à DOM prêt.À titre d'exemple, voici un drôle de petit plug-in qui permet de convertir du texte en vert:
...que vous pouvez utiliser à partir de DOM ready:
Live exemple | La source en direct
Noter que l'appel à c'est à partir de jQuery, par exemple, pas directement à partir de
$.fn
.OriginalL'auteur T.J. Crowder
Vous fonction
someFunc
n'est pas une "fonction jQuery", c'est une fonction définie à l'intérieur d'un (jQuery)DOMContentLoaded
gestionnaire d'événement.Vous ne pouvez pas y accéder de l'extérieur, car il est hors de portée. Il suffit de déclarer à l'extérieur du gestionnaire de chargement, et il sera accessible:
OriginalL'auteur bfavaretto
En jquery
est similaire à la plaine du javascript
C'est juste une façon d'ajouter une nouvelle propriété à un objet (héritage de prototype) et jquery du fn n'est qu'un alias de javascript prototype. Pour appeler mon " sumFunc la méthode que j'ai ajouté plus tôt à l'objet jquery en utilisant
Je peux faire
et cette ligne d'appel que la fonction et de faire quelque chose pour le "someElement" (même si je n'ai rien fait), j'espère que c'est assez clair. Regardez T. J. Crowder réponse, il va vous donner encore plus de compréhension.
jQuery.prototype
(qui est aussi, bizarrement, référencé à partir dejQuery.fn.init.prototype
parce que jQuery utilisenew jQuery.fn.init
pour créer des instances).Oui, jetez un oeil à cette stackoverflow.com/questions/1755080/..., je suis mal avec ma compréhension ?
@Sheikh Heera
: Je ne comprends pas votre question. Tout ce que lien n'est réitérons (incomplètement) ce que j'ai dit ci-dessus. Notez que "javascript" != "jquery".T. J. Crowder, je vous ai demandé si je me trompe, ou du droit à j'ai dit "de jquery fn n'est qu'un alias de javascript prototype", c'est ma compréhension de mal ?
@Sheikh Heera
: "javascript prototype" de ce? La phrase n'a aucun sens pour moi tout sur son propre. C'est pourquoi j'ai dit "JavaScript != jQuery"OriginalL'auteur The Alpha