Comment appeler une fonction dans $ (document) .ready depuis l'extérieur

Comment appelez-vous la fonction lol () de l'extérieur de $ (document) .ready () par exemple:

$(document).ready(function(){ function lol(){ alert('lol'); } }); 

A essayé:

 $(document).ready(function(){ lol(); }); 

Et tout simplement:

 lol(); 

Il faut l'appeler dans un javascript externe comme:

 function dostuff(url){ lol(); // call the function lol() thats inside the $(document).ready() } 

Définissez la fonction sur l'objet de fenêtre pour le rendre global à partir d'une autre portée de la fonction:

 $(document).ready(function(){ window.lol = function(){ alert('lol'); } }); 

En dehors du bloc, cette fonction est définie, elle est hors de portée et vous ne pourrez pas l'appeler.

Il n'est cependant pas nécessaire de définir la fonction là-bas. Pourquoi pas simplement:

 function lol() { alert("lol"); } $(function() { lol(); //works }); function dostuff(url) { lol(); // also works } 

Vous pouvez définir la fonction à l'échelle mondiale comme ceci:

 $(function() { lol = function() { alert("lol"); }; }); $(function() { lol(); }); 

Cela fonctionne mais n'est pas recommandé. Si vous définissez quelque chose dans l'espace de noms global, vous devez utiliser la première méthode.

Version courte: vous ne pouvez pas, c'est hors de portée. Définissez votre méthode comme celle-ci, donc c'est disponible:

 function lol(){ alert('lol'); } $(function(){ lol(); }); 

Vous n'avez pas besoin et de cela – Si une fonction est définie en dehors de Document.Ready – mais vous souhaitez appeler Document.Ready – c'est comme ça que vous le faites – ces réponses m'ont conduit dans la mauvaise direction, ne faites pas Tapez la fonction à nouveau, juste le nom de la fonction.

  $(document).ready(function () { fnGetContent(); }); 

Où fnGetContent est ici:

  function fnGetContent(keyword) { var NewKeyword = keyword.tag; var type = keyword.type; $.ajax({ ....... 

Qu'en est-il du cas où Prototype est installé avec jQuery et que nous avons défini des nœuds pour jQuery?

 jQuery(document).ready(function($){ window.lol = function(){ $.('#funnyThat').html("LOL"); } }); 

Maintenant, nous pouvons appeler lol de n'importe où, mais avons-nous introduit un conflit avec Prototype?