Không chắc lý do tại sao việc xác định chức năng với trong phạm vi của ready()
là quan trọng với bạn, nhưng bạn có thể làm cho nó hoạt động bằng cách tuyên bố foo
lên phía trước:
<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>
Rõ ràng bạn không thể gọi foo()
từ inline tập lệnh ngay sau ready()
vì mã ready()
chưa chạy, nhưng bạn có thể gọi hàm sau này.
Chỉ cần đảm bảo rằng không có gì có thể thử gọi foo()
trước khi mã ready()
chạy (hoặc thực hiện khai báo ban đầu foo()
một chức năng vô hại).
Ý tưởng tuyệt vời. Cảm ơn Richie! –
Nếu bạn cần gọi 'foo()' với một số tham số thì sao?Làm thế nào bạn sẽ vượt qua chúng, và làm thế nào họ sẽ được nhận? –
@ alonso.torres: Giống như bất kỳ hàm JavaScript nào khác: 'foo = function (x, y, z) {...}' ... 'onclick =" foo (1, 2, 3) "' – RichieHindle