Подтвердить что ты не робот

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? Они правильно включены и работают отлично в противном случае.

Спасибо.

4b9b3361

Ответ 1

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

$(document).ready(function()

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

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

$(document).ready(function()
{
   sayHello();
}

Ответ 2

просто сделайте функцию глобальной переменной

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