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