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

Как делают Вы вызываете функцию lol () снаружи $ (документ) .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()
}
32
задан rahul 4 March 2010 в 13:28
поделиться

3 ответа

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

$(document).ready(function(){  
  window.lol = function(){  
    alert('lol');  
  }  
});
58
ответ дан 27 November 2019 в 19:55
поделиться

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

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

$(function(){
  lol();
});
2
ответ дан 27 November 2019 в 19:55
поделиться

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

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

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

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

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

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

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

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

37
ответ дан 27 November 2019 в 19:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: