JQuery: Вызывание функций из различных документов

У меня есть некоторые функции JQuery, которые я сохраняю в "custom.js" файле. На некоторых страницах я должен передать переменные PHP JQuery, таким образом, некоторые биты JQuery должны остаться в документах HTML. Однако, поскольку я теперь пытаюсь осуществить рефакторинг вещи к минимуму, я спотыкаюсь за следующее:

Если я поместил это в свой custom.js:

$(document).ready(function()
{
   function sayHello() {
      alert("hello");
   }
}

И это в документе HTML:

<script type="text/javascript">
   $(document).ready(function()
   {
      sayHello();
   });
</script>

... функция не становится названной. Однако, если оба размещаются в документ HTML, функция хорошо работает.

Есть ли некоторая общественная собственность, которую я должен объявить для функции или как я заставляю функции JQuery в своем HTML говорить с внешними .js файлами? Они правильно включены и хорошо работают иначе.

Спасибо.

16
задан Tom 17 April 2010 в 01:33
поделиться

1 ответ

Проблема в том, что вы определяете sayHello в анонимной функции, которая объявлена ​​в этой строке:

$(document).ready(function()

В результате sayHello имеет область видимости только эта функция.Если вы хотите вызвать sayHello из любого другого места в вашем приложении, например из HTML на вашей странице или из другой строки в custom.js, вам нужно будет изменить custom.js и определить его вне вызова $ (документ) .ready :

function sayHello()
{
   alert("hello");
}

$(document).ready(function()
{
   sayHello();
}
29
ответ дан 30 November 2019 в 16:49
поделиться
Другие вопросы по тегам:

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