Не уверен, почему определение функции с помощью ready()
важно для вас, но вы можете заставить ее работать, объявив foo
в начале:
<html><head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js"></script>
<script>
var foo; // Here's the difference
$(document).ready(function(){
foo = function ()
{
alert('Bar');
}
});
</script></head><body>
<input type="button" onclick="foo()" value="Click me">
</body></html>
Очевидно, вы не можете вызвать foo()
из встроенного скрипта сразу после ready()
, потому что код ready()
еще не запущен, но вы можете вызвать функцию позже.
Просто убедитесь, что ничто не может попытаться вызвать foo()
до запуска кода ready()
(или сделать первоначальное объявление foo()
безвредной функцией).