Не уверен, почему определение функции с в рамках 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()
безобидной функцией).
Отличная идея. Спасибо, Ричи! –
Что делать, если вам нужно вызвать 'foo()' с некоторыми параметрами?Как вы их передадите, и как они будут получены? –
@ alonso.torres: как и любая другая функция JavaScript: 'foo = function (x, y, z) {...}' ... 'onclick =" foo (1, 2, 3) "' – RichieHindle