Подтвердить что ты не робот

Как вызвать функцию в $(документе). Уже вне ее

Как вы вызываете функцию lol() извне $(document).ready(), например:

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

Пробовал:

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

И просто:

lol();

Он должен быть вызван внутри внешнего javascript, например:

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

Ответ 1

Определите функцию в объекте window, чтобы сделать ее глобальной в пределах другой области функции:

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

Ответ 2

Вне блока, в котором функция определена, она выходит из области видимости, и вы не сможете ее вызвать.

Однако нет необходимости определять функцию там. Почему не просто:

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

$(function() {
  lol(); //works
});

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

Вы можете определить функцию глобально следующим образом:

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

Это работает, но не рекомендуется. Если вы собираетесь определить что-то в глобальном пространстве имен, вы должны использовать первый метод.

Ответ 3

Краткая версия: вы не можете, это вне сферы действия. Определите свой метод следующим образом:

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

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

Ответ 4

Вам не нужно и что - если функция определена вне Document.Ready - но вы хотите вызвать ее Document.Ready - вот как вы это делаете - этот ответ привел меня в неправильном направлении, не вводите функцию снова, просто имя функции.

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

Где fnGetContent находится здесь:

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

Ответ 5

Как насчет того, где Prototype установлен с jQuery, и у нас есть noconflicts для jQuery?

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

Теперь мы можем вызывать LOL из любого места, но мы ввели конфликт с Prototype?