2015-06-04 4 views
0

Я пытаюсь вызвать функцию-член моего объекта Utilities при нажатии кнопки. Файл JS, содержащий объект загружается в верхней части index.php страницы:Объект undefined при нажатии

<script type="text/javascript" src="js/utilities.js"></script> 
... 

И определили кнопку:

<button id="testAJAX" onclick="Utilties.loadSavedGames()">Load Game</button> 

Когда я нажимаю, я получаю Utilties is not defined об ошибке:

var Utilities = { 
    loadSavedGames : function() { 
     console.log("Clicked"); //returns Utilties is not defined 
    },... 

Но мне любопытно, почему, если я перезагружу страницу, она сможет вызвать функцию анона. Это говорит о том, что объект Utilties явно загружается при загрузке страницы:

var Utilities = { 
    doThis : (function() { 
     console.log("Utilities object loaded"); //runs just fine 
    })(), 

Таким образом, если объект загружается в верхней части страницы index.php, почему бы onclick сказать мне объект не определен?

+0

Вы уверены, что 'Утилиты 'доступны в глобальном масштабе? Возможно, попробуйте 'window.Utilities' вместо' var Utilities'. –

+0

Недостаточно информации, чтобы дать ответ, но делает ли utilities.js ссылку на Утилиты на окне? Итак, windows.Utilities? Кажется, это проблема с закрытием JavaScript, которая у вас есть. –

ответ

2

В вашем javascript вы устанавливаете Utilities, но ваш onclick ссылается на Utilties. Отсутствует i.

+2

О, человек, который смущает – Growler

+0

@ Growler случается с лучшими из них. :) Я считаю, что использование среды IDE, которая выделяет необъявленные переменные, может помочь уменьшить это. Или скопируйте/вставьте как можно больше. –

Смежные вопросы