Я смущен, почему foo2 работает, но foo1 нет.Проблема с объявлением функции Javascript
JS Fiddle: https://jsfiddle.net/474v3mfd/4/
HTML
<a onclick="foo1()">
foo1
</a>
<a onclick="foo2()">
foo2
</a>
Javascript
function foo1(){
console.log("foo1 called..");
}
foo2 = function(){
console.log("foo2 called..");
}
журнала консоли
(index):60 Uncaught ReferenceError: foo1 is not defined at HTMLAnchorElement.onclick ((index):60) onclick @ (index):60 (index):50 foo2 called..
Резюме
Эта проблема касается JSFiddle. Когда я помещаю код в файл HTML, он отлично работает.
Вам нужно будет показать более полный пример, но я предполагаю, что код внутри функции (например, onload event), поэтому 'foo1' является локальным, а' foo2' является глобальным. – JJJ
** Сначала: ** убедитесь, что ваш скрипт загружен перед тегами 'a'. Хотя его не посоветовали. Вы должны использовать '.addEventListener' для привязки события. ** Второе: ** объявление переменной без 'var' сделает ее глобальной. – Rajesh
Добавлен JS Fiddle. https://jsfiddle.net/474v3mfd/4/ –