Поскольку в тексте, присвоенном display innerHTML, * test_function * - это просто обычный текст, который оценивается анализатором HTML. В этот момент сфера его применения является глобальной, а не в пределах IIFE, переданного $(document).ready()
. Вы можете исправить это, сделав функцию глобальной:
$(document).ready(function(){
window.test_function = function (number) {
// do stuff
}
....
});
или
var test_function;
$(document).ready(function(){
test_function = function (number) {
// do stuff
}
....
});
Или любым другим способом получить доступ к функции. Но хотя он объявлен внутри области действия анонимной функции, доступ к нему можно получить только из функции, которая имеет замыкание для переменных в этой области.