jquery - функция не определена - вызов этой функции из встроенного скрипта
У меня есть код, как показано ниже. Убрали из этого ненужный код, просто написали, что было нужно. Когда я вызываю свой toggleFunc из встроенного скрипта в теле, в консоли показывается, что эта функция не определена. Может кто-нибудь, пожалуйста, скажите мне, что не так с этим?
<head>
<script src="~/Client/js/lib/jquery-1.10.2.js"></script>
<script type="text/javascript">
$(document).ready(function(){
var pageInitialize = function () {
..doing something here
function toggleFunc() {
..doing something more here
};
};
pageInitialize();
});
</script>
</head>
<body>
<script>toggleFunc()</script>
</body>
3 ответа
Обе ваши функции не будут определены до тех пор, пока не сработает DOMReady, что произойдет после вызова toggleFunc
в body
был запущен. Также, toggleFunc
находится в пределах pageInitialize
функция, и, следовательно, не доступен снаружи pageInitialize
,
Попробуй это:
<script type="text/javascript">
var pageInitialize = function () {
//..doing something here
};
pageInitialize();
function toggleFunc() {
//..doing something more here
};
</script>
Две проблемы:
toggleFunc
не глобальная функция. Это локальноpageInitialize
, Если вы хотите, чтобы он был глобальным, присвойте егоwindow
,Вы определяете функцию внутри
$(document).ready
обратный вызов, который будет выполняться в определенный момент в будущем. Вы вызываете функцию немедленно, вне$(document).ready
Перезвоните. Это еще не было определено.
toggleFunc()
Закрытие не может быть вызвано из глобальной области видимости.
Он также вызывается еще до того, как определяется, когда вы используете $(document).ready