Как сделать $ (документ) .ready () функции доступный глобально?

У меня есть интересный вопрос здесь, который может звучать довольно глупым, но здесь идет. Используя готовую функцию 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 () глобальный?

5
задан sctskw 11 March 2010 в 22:04
поделиться

3 ответа

Если вы (из стилистических соображений) хотите написать функцию в строке с вашим $ (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) { };
});
6
ответ дан 18 December 2019 в 11:55
поделиться

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

// 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();
});
6
ответ дан 18 December 2019 в 11:55
поделиться

что насчет

  function function1(data){
    //do something
  }
  function function2(data){
    //do something else
  }

   $(function(){
      // if you need to call inside ready
      function1();
      function2();
   });
3
ответ дан 18 December 2019 в 11:55
поделиться
Другие вопросы по тегам:

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