Функция Javascript внутри document.ready

Почему функция javascript, написанная внутри document.ready, не может быть вызвана непосредственно из события в jsp?

Например:

$(document).ready(function(){
     function abc()
     {
          //Some stuff here
     }
});

От чего-то вроде:

<input id="a" type="button" onclick="abc();">

Ответ 1

Потому что он недоступен в глобальной области. Любая функция, определенная в анонимной функции, передаваемой как аргумент $.ready(), доступна только в этой функции.

Чтобы достичь того, что вы хотите сделать, вам нужно что-то вроде:

$(document).ready(function(){
     function abc() {}

     $('#a').on('click',abc);
});

Для получения дополнительной информации о области функций см. эту статью MDN