Ответ 1
Определите функцию в объекте window, чтобы сделать ее глобальной в пределах другой области функции:
$(document).ready(function(){
window.lol = function(){
alert('lol');
}
});
Как вы вызываете функцию 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()
}
Определите функцию в объекте window, чтобы сделать ее глобальной в пределах другой области функции:
$(document).ready(function(){
window.lol = function(){
alert('lol');
}
});
Вне блока, в котором функция определена, она выходит из области видимости, и вы не сможете ее вызвать.
Однако нет необходимости определять функцию там. Почему не просто:
function lol() {
alert("lol");
}
$(function() {
lol(); //works
});
function dostuff(url) {
lol(); // also works
}
Вы можете определить функцию глобально следующим образом:
$(function() {
lol = function() {
alert("lol");
};
});
$(function() {
lol();
});
Это работает, но не рекомендуется. Если вы собираетесь определить что-то в глобальном пространстве имен, вы должны использовать первый метод.
Краткая версия: вы не можете, это вне сферы действия. Определите свой метод следующим образом:
function lol(){
alert('lol');
}
$(function(){
lol();
});
Вам не нужно и что - если функция определена вне Document.Ready - но вы хотите вызвать ее Document.Ready - вот как вы это делаете - этот ответ привел меня в неправильном направлении, не вводите функцию снова, просто имя функции.
$(document).ready(function () {
fnGetContent();
});
Где fnGetContent находится здесь:
function fnGetContent(keyword) {
var NewKeyword = keyword.tag;
var type = keyword.type;
$.ajax({ .......
Как насчет того, где Prototype установлен с jQuery, и у нас есть noconflicts для jQuery?
jQuery(document).ready(function($){
window.lol = function(){
$.('#funnyThat').html("LOL");
}
});
Теперь мы можем вызывать LOL из любого места, но мы ввели конфликт с Prototype?