У меня есть интересный вопрос здесь, который может звучать довольно глупым, но здесь идет. Используя готовую функцию JQuery я определил некоторые функции как так:
$(function(){
var function1 = function(data){
//do something
}
var function2 = function(data){
//do something else
}
});
По некоторым причинам, для IE для рендеринга, что я использую правильно это должно быть сделано в $ (документ) .ready () функция. Однако я должен инициировать эти функции, после того как у меня есть набор данных от серверной стороны. Таким образом, я думал, что сделаю что-то вроде этого...
Object.Namespace.callFunction = function(data){
function1(data);
}
... быть помещенным вне готовой функции в сценарии так, чтобы я мог назвать его непосредственно.
К сожалению, я знаю, что это не работает, потому что хорошо, это не кажется логичным, и я попробовал его!. Я сделал все эти функции произвольными, потому что это не имеет значения содержание, а скорее понятие. Я также попытался использовать обработчики событий для инициирования функции, после того как я получаю те данные - напрасно! Что лучший способ состоит в том, чтобы сделать функциями в $ (документ) .ready () глобальный?
Если вы (из стилистических соображений) хотите написать функцию в строке с вашим $ (document) .ready, вы можете сделать это следующим образом:
var app={}; /*Use whatever your apps name is, abbreviated (something short)*/
$(function()
{
app.function1 = function(data) { };
app.function2 = function(data) { };
// now you can call all functions inside and outside this ready function with the app. prefix
// if you also want a local reference to the function without the app. prefix, you can do:
var function1 = app.function1 = function(data) { };
});
Если вы определяете глобальные функции, нет причин для их готовности в документе. Единственное, что должно идти в готовом документе, - это то, что нужно дождаться, пока документ будет готов , чтобы действовать. Определение функции может произойти до того, как документ будет готов.
// Defining the functions in the global scope.
var function1 = function(data){
//do something that requires the dom to be ready.
}
var function2 = function(data){
//do something else that requires the dom to be ready.
}
$(function() {
// Running the functions when the document is ready.
function1();
function2();
});
что насчет
function function1(data){
//do something
}
function function2(data){
//do something else
}
$(function(){
// if you need to call inside ready
function1();
function2();
});