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?