Nie wiem, dlaczego definiowanie funkcji z zakresem ready()
jest dla Ciebie ważne, ale można zrobić to praca deklarując foo
z góry:
<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>
Oczywiście nie można nazwać foo()
z inline skrypt natychmiast po ready()
, ponieważ kod ready()
jeszcze się nie uruchomił, ale możesz później wywołać tę funkcję.
Po prostu upewnij się, że nic nie może próbować zadzwonić pod numer foo()
przed uruchomieniem kodu ready()
(lub uczynić początkową deklarację foo()
nieszkodliwą funkcją).
Świetny pomysł. Dzięki Richie! –
Co jeśli musisz wywołać 'foo()' z niektórymi parametrami?Jak byś je minął i jak zostałyby one odebrane? –
@ alonso.torres: Tak jak każda inna funkcja JavaScript: 'foo = funkcja (x, y, z) {...}' ... 'onclick =" foo (1, 2, 3) "' – RichieHindle